তথ্য অনুলিপি না করে টেবিল অনুলিপি করুন


153
CREATE TABLE foo SELECT * FROM bar

টেবিলটি fooঅনুলিপি করে একে ডাকা একটি নতুন টেবিল হিসাবে নকল করে bar

আমি কিভাবে স্কিমা অনুলিপি করতে পারেন fooনামের একটি নতুন টেবিল থেকে bar ছাড়া পাশাপাশি ডেটার উপর অনুলিপি?


1
স্কেলসারভার 2005 এ কীভাবে করবেন?
থান্ডার

বার থেকে মানে কি?
স্মিত সরাইয়া


@ থান্ডার দেখে মনে হচ্ছে আপনি এমএস এসকিউএলে একটি "কেবল কলম" অনুলিপি করতে পারেন। রেফারেন্সের জন্য এটি দেখুন: স্ট্যাকওভারফ্লো
কেভিন ওয়ারথিংটন

উত্তর:


140

চেষ্টা করুন:

CREATE TABLE foo SELECT * FROM bar LIMIT 0

বা:

CREATE TABLE foo SELECT * FROM bar WHERE 1=0

4
@ থান্ডার: চেষ্টা করুনselect * into foo from bar where 1=0
অ্যান্ডোমার

29
এটি সীমাবদ্ধতা বা কীগুলি অনুলিপি করে বলে মনে হচ্ছে না
টিমো হুভিনেন

15
@ টিমোহুভিনেন: সম্ভবত আপনার create table NewTable like OldTableপক্ষে একটি বিকল্প। মোছা উত্তর থেকে লিঙ্ক অনুলিপি করা হয়েছে।
Andomar

1
হতে সত্যিই লোড অধীনে এবং উচ্চ সম্পাতবিন্দু এই ব্যবহারে সাবধান। আমি মাত্র স্কেল করে এটি ব্যবহার করে জ্বালিয়েছি, যেখানে একই প্রক্রিয়া উত্স টেবিলটিতে অন্যান্য প্রক্রিয়া থেকে সন্নিবেশ করার সময় আমরা প্রায় 50 টি বিভিন্ন টেবিল তৈরি করেছি। মূলত একটি বিশাল লক মেল্টডাউন ঘটায় এবং মাইএসকিউএল পুনরায় চালু করতে হয়েছিল।
মার্ক করুন

6
আহ, ওপি বিভ্রান্ত? এটি স্পষ্টতই প্রশ্নের একটি ভুল উত্তর, যদি আমরা "... ডেটা অনুলিপি না করেই ..." শিরোনাম এবং প্রশ্নের জোরের দিকে মনোযোগ দিই ... "আরসিএনেলের উত্তর যথাযথভাবে সর্বোচ্চ ভোট দেওয়া হয়েছে। কেন এটি একজন গৃহীত হয়েছে তা নিশ্চিত নয়। শুধু Sayin'.
xyphenor

421

চেষ্টা

CREATE TABLE foo LIKE bar;

তাই কীগুলি এবং সূচিগুলিও অনুলিপি করা হয়।

নথিপত্র


40
এটি আরও ভাল উত্তর যেহেতু এই অনুলিপিগুলিও অনুলিপি করে!
চৈতান

2
এটি অনেক ভাল, তবে এখনও বিদেশী কীগুলি অনুলিপি করে না।
জোসেফ সোবল

@ আরসিএনিল, CREATE TABLE new_tbl LIKE orig_tbl;অনুলিপিগুলিতেও কি অধিকার আছে? নাকি সেগুলি ম্যানুয়ালি অনুলিপি করা উচিত?
পেসারিয়ার

2
সম্ভবত কারণ এই উত্তরটি সঠিক হিসাবে চিহ্নিত হিসাবে 4 বছর পরে এসেছিল
পাইথোনিয়ান 290333

1
@ পিয়েরে-অলিভিয়ারভেয়ারস ডকুমেন্টেশন পাঠ্যটি প্রকৃত উত্তরের সাথে সরাসরি প্রাসঙ্গিক নয়। উত্তর পাঠ্যটি কীভাবে প্রশ্ন জিজ্ঞাসা করেছিল তা কীভাবে করা যায় তা দেখানোর ক্ষেত্রে সংক্ষিপ্ত, যখন ডকুমেন্টেশনের লিঙ্কটি কেবল অতিরিক্ত প্রসঙ্গ সরবরাহ করে। যেমন, ডকুমেন্টেশন থেকে পাঠ্য সহ উত্তর স্ফীত করা সহায়ক নয়।
অ্যাবিয়ন 47

27
SHOW CREATE TABLE bar;

আপনি সেই টেবিলের জন্য একটি তৈরি বিবৃতি পাবেন, টেবিলের নামটি বা আপনার পছন্দ মতো অন্য কোনও কিছু সম্পাদনা করুন এবং তারপরে এটি সম্পাদন করুন।

এটি আপনাকে সূচিপত্রগুলি অনুলিপি করতে এবং টেবিল তৈরির জন্য ম্যানুয়ালি টুইঙ্ক করতে সহায়তা করবে।

আপনি কোনও প্রোগ্রামের মধ্যেও ক্যোয়ারী চালাতে পারেন।


কীভাবে আপনি show create table barডায়নামিক্যালি এক্সিকিউটেবল স্টেটমেন্টে রূপান্তর করতে পারেন ?
পেসিয়ার 12

প্রদত্ত ফলাফলটি show create table barইতিমধ্যে কার্যকরযোগ্য, যদি স্ক্রিপ্টে টেবিলগুলি তৈরি করার অনুমতি থাকে তবে আপনি এটি বিশ্লেষণ করতে পারেন এবং তারপরেও পরিবর্তিত টেবিলের বিবৃতি কার্যকর করতে পারেন।
টিমো হুভিনেন

create table...সূচি অনুলিপি করবে না। এই উত্তরটি আরও ভাল বিকল্প
bluepinto

2

কেবল সারণির কাঠামো ক্লোন করতে চান:

CREATE TABLE foo SELECT * FROM bar WHERE 1 = 2;

ডেটা অনুলিপি করতে চায়:

CREATE TABLE foo as SELECT * FROM bar;
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.