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


154

এসকিউএল সার্ভারে একই স্কিমার সাহায্যে কীভাবে একটি টেবিল থেকে অন্য টেবিলের মধ্যে ডেটা অনুলিপি / যুক্ত করা যায়?

সম্পাদনা:

এর একটি জিজ্ঞাসা আছে বলুন

select * 
into table1 
from table2 
where 1=1 

যা table1একই স্কিমার পাশাপাশি ডেটা হিসাবে তৈরি করে table2

ইতিমধ্যে বিদ্যমান টেবিলটিতে কেবলমাত্র পুরো ডেটা অনুলিপি করতে এর মতো কোনও সংক্ষিপ্ত প্রশ্ন রয়েছে?


কেবলমাত্র সম্পূর্ণ তথ্যের জন্য, সতর্কতা অবলম্বন করুন এই আদেশগুলি সূচি এবং টেবিলের ট্রিগারগুলি অনুলিপি করবেন না! : কপি সূচী এবং ট্রিগার স্ক্রিপ্টের জন্য পোস্টটি নিম্নলিখিত দেখুন stackoverflow.com/questions/7582852/...
HausO

কীভাবে সমাধান করবেন? INSERT INTO newTable (col1, col2, col3,col4) values ((SELECT column1, column2, column3 FROM oldTable where condition),'string');

উত্তর:


310

উভয় টেবিল যদি সত্যই একই স্কিমা হয়:

INSERT INTO newTable
SELECT * FROM oldTable

অন্যথায়, আপনাকে কলামের নাম উল্লেখ করতে হবে ( newTableযদি আপনি সমস্ত কলামের জন্য একটি মান নির্দিষ্ট করে এবং একই ক্রমে কলামগুলি newTable'র স্কিমা হিসাবে নির্বাচন করে থাকেন তবে এর জন্য কলামের তালিকাটি is চ্ছিক):

INSERT INTO newTable (col1, col2, col3)
SELECT column1, column2, column3
FROM oldTable

1
আমি যদি blank dataকিছু কলামের জন্য প্রবেশ করতে চান ??
এইচডি

3
@ কোডার এটি কেবল একটি নির্বাচিত ধারা, সুতরাং আপনার স্পষ্টত NULL, স্ট্রিং কনস্ট্যান্টস, এক্সপ্রেশন বা এমনকি সাবকিউরিয়াসহ যে কোনও কিছু আপনি চান এতে রাখতে স্বাগত ।
এলসি

এটি কেন কাজ করে নাINSERT INTO newTable (col1, col2, col3,col4) values ((SELECT column1, column2, column3 FROM oldTable where condition),'string');

1
@ আবদুল্লাহনুরুম কারণ আপনার স্কেলার ক্যোয়ারী একাধিক কলাম নির্বাচন করছে। দেখুন stackoverflow.com/questions/4141370/... এবং stackoverflow.com/questions/6254913/...
LC।

1
যদি উভয় টেবিল একই ধরণের স্কিমা উপস্থাপন করে তবে হ্যাঁ 'আইডেন্টিটি স্পেসিফিকেশন' সহ একটি কলাম রয়েছে, এসকিউএল বিবৃতিতে পরিচয় স্পেসিফিকেশন সহ একটি কলাম বাদে সমস্ত কলাম গণনা করা দরকার।
গ্যাব্রিয়েল মারিয়াস পপেস্কু

18

এটি করার সঠিক উপায় এটি:

INSERT INTO destinationTable
SELECT * FROM sourceTable

16

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

SELECT * INTO NewTable FROM OldTable




4
INSERT INTO DestinationTable(SupplierName, Country)
SELECT SupplierName, Country FROM SourceTable;

কলামের নাম একই হওয়া বাধ্যতামূলক নয়।


3

শর্ত সহ নির্বাচিত কলাম sertোকান

INSERT INTO where_to_insert (col_1,col_2) SELECT col1, col2 FROM from_table WHERE condition;

একই কলামের নাম দিয়ে সমস্ত তথ্য এক টেবিল থেকে অন্য টেবিলটিতে অনুলিপি করুন।

INSERT INTO where_to_insert 
SELECT * FROM from_table WHERE condition;

0
CREATE TABLE `table2` LIKE `table1`;
INSERT INTO `table2` SELECT * FROM `table1`;

প্রথম ক্যোয়ারী গঠন তৈরি করবে থেকে table1থেকে table2এবং দ্বিতীয় ক্যোয়ারী থেকে ডেটা করা হবে table1থেকেtable2

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