postgresql - টেবিল সেট ডিফল্ট বুলিয়ান কলাম যুক্ত করুন


158

এর কোনও ডিফল্ট মান সহ একটি টেবিলটিতে একটি কলাম যুক্ত করার জন্য এটি কি সঠিক পোস্টগ্রাক্সেল সিনট্যাক্স false

ALTER TABLE users
ADD "priv_user" BIT
ALTER priv_user SET DEFAULT '0'

ধন্যবাদ!


3
আপনি কি কিছুটা কলাম বা বাস্তব booleanকলাম চান?
rfusca

উত্তর:


285
ALTER TABLE users
  ADD COLUMN "priv_user" BOOLEAN DEFAULT FALSE;

আপনি সরাসরি নালও নির্দিষ্ট করতে পারবেন

ALTER TABLE users
  ADD COLUMN "priv_user" BOOLEAN NOT NULL DEFAULT FALSE;

আপডেট : নিম্নলিখিত 11 বছর পূর্বে পোস্ট সংস্করণ জন্য শুধুমাত্র সত্য।

ক্রেগ যেমন ভরা টেবিলগুলিতে উল্লেখ করেছেন এটি এটিকে ধাপে বিভক্ত করা আরও দক্ষ:

ALTER TABLE users ADD COLUMN priv_user BOOLEAN;
UPDATE users SET priv_user = 'f';
ALTER TABLE users ALTER COLUMN priv_user SET NOT NULL;
ALTER TABLE users ALTER COLUMN priv_user SET DEFAULT FALSE;

28
মনে রাখবেন যে আপনার টেবিলটি বড় হলে এটি দীর্ঘ সময় নিতে পারে এবং পুরো সময়ের জন্য টেবিলটি লক করতে পারে। এটা অনেক দ্রুত এটা পদক্ষেপ বিভক্ত করার সাথে একটি ডিফল্ট ছাড়া কলাম যোগ ALTER TABLE users ADD COLUMN priv_user BOOLEAN;তারপর, UPDATE users SET priv_user = 'f';এবং পরিশেষে আপনি প্রয়োজন ALTER TABLE users ALTER COLUMN priv_user SET NOT NULL;
ক্রেগ রিঞ্জার

পদক্ষেপে বিভক্ত পদ্ধতির কোনও ডিফল্ট মান যোগ করা হচ্ছে না। "ডিফল্ট 'চ'" আলাদা পদক্ষেপে যুক্ত করা কি এখনও দ্রুত?
চার্লি ব্রাউন

1
হ্যাঁ পৃথক পদক্ষেপে ডিফল্ট যুক্ত করা কেবল একটি মেটা ডেটা অপারেশন এবং এইভাবে খুব দ্রুত।
Eelke

এটি কী করে - 'একটি মেটা ডেটা অপারেশন'? কোন অর্থে এবং কেন এটি এক সাথে মান নির্ধারণের চেয়ে আলাদা? ধন্যবাদ
অ্যান্ড্রে এম স্টেপানভ

1
আসল বিধিগুলি হ'ল কীওয়ার্ড এবং অব্যক্ত শনাক্তকারীরা কেস সংবেদনশীল নয় তাই বুলেইনকে অভ্যন্তরীণভাবে পোস্টগ্রেস্কল বুলিয়ান ব্যবহার করার চিন্তাভাবনা করার অনুমতি দেওয়া হয়। আমি বড় আকারে স্ট্যান্ডার্ড টাইপ এবং এসকিউএল কীওয়ার্ড লিখতে ঝোঁক, আমি আমার নিজের নিজস্ব সনাক্তকারীদের জন্য ছোট হাতের ব্যবহার করি।
Eelke

17

আপনি যদি সত্যিকারের বুলিয়ান কলামটি চান:

ALTER TABLE users ADD "priv_user" boolean DEFAULT false;

দ্রষ্টব্য: পোস্টগ্রিসের সমস্ত সংস্করণ এটি এক লাইনে সংজ্ঞায়িত করা সমর্থন করে না।
বেনিয়ামিন আর

14

কেবলমাত্র ভবিষ্যতের রেফারেন্সের জন্য, আপনার যদি ইতিমধ্যে একটি বুলিয়ান কলাম থাকে এবং আপনি কেবল একটি ডিফল্ট কর যোগ করতে চান:

ALTER TABLE users
  ALTER COLUMN priv_user SET DEFAULT false;

5

আপনি যদি পোস্টগ্রেস্কএল ব্যবহার করেন তবে আপনার কলামের টাইপ বুুলিয়ানটি নিম্ন ক্ষেত্রে কে বুলিয়ান হিসাবে ব্যবহার করতে হবে।

টেবিল ব্যবহারকারীরা "প্রাইভ_উজার" বুলিয়ান ডিফল্ট মিথ্যা যুক্ত করুন;


4

পিএসএইচএল-তে এই জাতীয় কলাম ক্যোয়ারী সিন্ট্যাক্স পরিবর্তন করে

Alter table users add column priv_user boolean default false ;

বুলিয়ান মান (সত্য-মিথ্যা) ডিবিতে (টিএফ) মান সংরক্ষণ করুন।

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