সাধারণত কোনও টেবিলটির নকল করার দ্রুততম উপায়টি হ'ল:
CREATE TABLE table2 AS SELECT * FROM table1;
সমান্তরাল INSERT গুলি দ্রুত হতে পারে তবে কেবল খুব দ্রুত ডিস্কের সাবসিস্টেমের সাথে (যখন ডেটাটি অনেকগুলি ড্রাইভে অন্তর্নিহিত থাকে)। অন্যথায় এটি ধীর হবে।
একবার আপনি সংশোধন করার পরে table2
, এটি এর সাথে নতুন নামটি নিতে পারে:
BEGIN;
DROP TABLE table1;
ALTER TABLE table2 RENAME TO table1;
COMMIT;
DROP TABLE
কমান্ড যা আপনি কহা করতে পারেন মধ্যে সমবর্তী পাঠকদের প্রভাবিত একটি একচেটিয়া লক, দরকার:
DROP
অন্যান্য লেনদেনগুলি থেকে টেবিলের যে কোনও মুলতুবি পড়ার অপেক্ষা করবে finish
- এর মধ্যে সেই টেবিলটি পড়ার চেষ্টা করা যে কোনও নতুন লেনদেনকে এটিকে অপেক্ষায় রাখা হবে, এবং তারপরে মূলটি
table1
আর বিদ্যমান না থাকায় ব্যর্থ হবে । ত্রুটিটি দেখে মনে হবে "ওআইডি ওডের সাথে সম্পর্ক খুলতে পারে না "
দ্বিতীয় দিক এড়ানোর জন্য, আপনি নামান্তর পারে table1
থেকে old_table1
এটা ড্রপ পরিবর্তে, এবং তারপর শুধুমাত্র পরে লেনদেন, বাইরে এটা ড্রপ যখন এই পাঠকদের এটা দিয়ে করা হয়। সুতরাং উপরের ক্রমটি হয়ে উঠবে:
BEGIN;
ALTER TABLE table1 RENAME TO old_table1;
ALTER TABLE table2 RENAME TO table1;
COMMIT;
...
DROP TABLE old_table1;