PostgreSQL এ তেমন কোনও ব্যবস্থা নেই।
তবে, আপনি এখনও এই জাতীয় টেবিল পরিবর্তনের অত্যধিক প্রভাব এড়াতে পারেন।
নীচের বিবৃতিটি বিবৃতি / লেনদেনের সময়কালের জন্য টেবিলে একটি অ্যাক্সেস এক্সক্লুসিভ লক অর্জন করে:
ALTER TABLE your_table
ADD COLUMN new_column integer NOT NULL DEFAULT 0;
এই বিবৃতিটি ক্যাটালগ পরিবর্তন করে, তারপরে পুরো টেবিলটি পুনরায় লিখবে যাতে নতুন কলামে সমস্ত সারিতে ডিফল্ট মান থাকে। যদি টেবিলটিতে অনেকগুলি সারি থাকে এবং প্রায়শই অ্যাক্সেস করা হয় তবে এটি কিছু অস্থায়ী সমস্যার কারণ হতে পারে।
এড়াতে, যত তাড়াতাড়ি সংক্ষিপ্ততার জন্য একচেটিয়া লক ধরে রাখার চেষ্টা করুন:
ALTER TABLE your_table
ADD COLUMN new_column integer;
ALTER TABLE your_table
ALTER COLUMN new_column SET DEFAULT 0;
যেহেতু এটি মূলত ক্যাটালগটিতে কেবলমাত্র একটি (আসলে দুটি) পরিবর্তন (কোনও ডেটা পরিবর্তন ঘটে না), এটি খুব দ্রুত সম্পন্ন হবে। তারপরে আপনার প্রয়োজনীয়তা এবং টেবিল ব্যবহারের উপর নির্ভর করে আপনি এক কদমে বা ব্যাচগুলিতে ডিফল্টরূপে নতুন কলামটি আপডেট করতে পারবেন এবং শেষ হয়ে গেলে, কলামটি এতে সেট করুন NOT NULL
।
কোনও ইচ্ছা বাস্তবায়িত হওয়ার বিষয়ে আপডেট: পোস্টগ্র্যাস এসকিউএল 11 এর এই বৈশিষ্ট্যটি থাকবে। আরও জানতে https://www.depesz.com/2018/04/04/waiting-for-postgresql-11- ব্রেকফাস্ট- alter- table- add- column- with- a-non- null- default/ দেখুন।