সাধারণত কোনও টেবিলটির নকল করার দ্রুততম উপায়টি হ'ল:
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;