সমস্ত কী এবং সীমাবদ্ধতা সহ ডেটা ছাড়াই কোনও টেবিলের কাঠামো কোনও নতুন টেবিলের অনুলিপি করার কোনও উপায় আছে?
সমস্ত কী এবং সীমাবদ্ধতা সহ ডেটা ছাড়াই কোনও টেবিলের কাঠামো কোনও নতুন টেবিলের অনুলিপি করার কোনও উপায় আছে?
উত্তর:
একটি সাধারণ স্কিমা অনুলিপির জন্য এই জাতীয় ধারা ব্যবহার করুন।
CREATE TABLE new_table_name ( like old_table_name including all)
ওয়েল, আপনি এসকিউএল এর সাথে সবচেয়ে কাছেরটি হ'ল:
create table new (
like old
including defaults
including constraints
including indexes
);
তবে এটি সব কপি করবে না। অনুপস্থিত সবচেয়ে গুরুত্বপূর্ণ বিষয়গুলি হ'ল বিদেশী কী। এছাড়াও - ট্রিগারগুলিও অনুলিপি করা হয় না। অন্যান্য জিনিস সম্পর্কে নিশ্চিত না।
আরেকটি উপায় হ'ল টেবিলের কাঠামোটি ডাম্প করা, নামটির নামটি ডাম্পে পরিবর্তন করা এবং এটি আবার লোড করা:
pg_dump -s -t old databases | sed 's/old/new/g' | psql
তবে সাবধান থাকুন যে এ জাতীয় সরল সিড অন্য জায়গায় নতুন থেকে পুরানোতেও পরিবর্তিত হবে (উদাহরণস্বরূপ যদি আপনার টেবিল কলামে "is_scolded" থাকে তবে এটি "is_scnewed" হয়ে যাবে)।
প্রশ্নটি আসলেই বরং: আপনার এটির প্রয়োজন কেন - কারণ বিভিন্ন উদ্দেশ্যে, আমি বিভিন্ন কৌশল ব্যবহার করব।
including constraintsপোস্টগ্রিজ এসকিউএল 8.3
একটি সারণী সম্পূর্ণ অনুলিপি করতে, টেবিল কমান্ড ব্যবহার করে সংক্ষিপ্ত ফর্মটিও ব্যবহার করা যেতে পারে:
CREATE TABLE films2 AS
TABLE films
WITH NO DATA;
আরও বিশদ এখানে
পিজিএডমিনটি একবার দেখুন - আপনি যা চান তা করার সহজতম উপায়।
টেবিলের উপর ডান ক্লিক করুন, স্ক্রিপ্টস - তৈরি করুন।
কেমন
CREATE TABLE sample_table_copy AS (SELECT * FROM sample_table WHERE 1 = 2)
CREATE TABLE new (like old, extra_column text);