PostgreSQL ALTER TABLE: إضافة وإعادة تسمية عمود

⚡ ملخص ذكي

PostgreSQL يقوم الأمر ALTER TABLE بتغيير بنية جدول موجود، مما يسمح لك بإضافة أو حذف الأعمدة، وإعادة تسمية عمود أو الجدول بأكمله، وتعيين القيم الافتراضية، وإرفاق قيود التحقق دون إعادة إنشاء الكائن.

  • 🧱 بناء الجملة: يقوم الأمر ALTER TABLE table-name بإجراء تغيير هيكلي واحد لكل عبارة.
  • إضافة عمود: إضافة عمود باسم ونوع بيانات يضيف عمودًا جديدًا إلى الجدول.
  • ✏️ إعادة تسمية: يُستخدم الأمر RENAME COLUMN لتغيير اسم عمود أو اسم جدول.
  • ⚙️ القيمة الافتراضية: يوفر الأمر ALTER COLUMN SET DEFAULT قيمة لصفوف INSERT المستقبلية.
  • 🛡️ التحقق من القيد: تقوم وظيفة ADD CHECK بالتحقق من صحة البيانات الجديدة ورفض القيم التي لا تستوفي القاعدة.
  • 🤖 عمليات نقل الذكاء الاصطناعي: يقوم مساعدو الذكاء الاصطناعي بصياغة نصوص ALTER TABLE ومراجعتها لضمان نشرها بشكل آمن.

PostgreSQL تغيير الجدول

ما هو ALTER TABLE في PostgreSQL?

استخدم تغيير الجدول يُستخدم الأمر لتغيير بنية PostgreSQL يُستخدم الأمر `table` لتغيير أعمدة الجدول أو اسم الجدول نفسه، دون حذفه.ping وإعادة إنشاء الكائن.

بناء الجملة

هنا هو بناء الجملة ل PostgreSQL أمر تغيير الجدول:

ALTER TABLE table-name action;

يُشير مُعامل اسم الجدول إلى اسم الجدول الذي ترغب في تغييره. أما مُعامل الإجراء فيُشير إلى الإجراء المطلوب تنفيذه، مثل تغيير اسم عمود أو تغيير نوع بيانات عمود.

الوصف

يقوم الأمر ALTER TABLE بتغيير تعريف الجدول الموجود. ويأخذ النماذج الفرعية التالية:

  • إضافة عمود: يستخدم هذا الأمر صيغة مشابهة لأمر CREATE TABLE لإضافة عمود جديد إلى جدول.
  • إسقاط العمود: للإسقاطping عمود جدول. سيتم أيضًا حذف القيود والفهارس المفروضة على الأعمدة.
  • تعيين/إسقاط الافتراضييُستخدم هذا الخيار لتعيين أو إزالة القيمة الافتراضية لعمود ما. ولا يسري هذا التغيير إلا على الأعمدة اللاحقة. إدراج البيانات.
  • تعيين/إسقاط ليس فارغًا: يغير ما إذا كان العمود سيسمح بقيم فارغة أم لا.
  • إحصائيات المجموعة: لتحديد هدف جمع الإحصائيات لكل عمود لعمليات التحليل.
  • ضبط التخزين: لتحديد طريقة تخزين عمود، سواء كان مضمنًا أو في جدول تكميلي.
  • مجموعة بدون مواد: يستخدم لإزالة عمود OID القديم من الجدول.
  • إعادة تسمية: لتغيير اسم الجدول أو اسم العمود.
  • إضافة table_constraintيُستخدم لإضافة قيد جديد إلى جدول. ويستخدم نفس الصيغة المستخدمة في إنشاء الجدول أمر.
  • قيود السقوط: يستخدم للإسقاطping قيد جدولي.
  • OWNER: لتغيير مالك جدول أو تسلسل أو فهرس أو عرض إلى مستخدم معين.
  • CLUSTER: لتحديد جدول لاستخدامه في عمليات التجميع المستقبلية.

تعديل عمود

يمكن تعديل عمود في جدول البيانات بعدة طرق، ويتم ذلك باستخدام أمر ALTER TABLE. سنتناول هذه التعديلات بالتفصيل فيما يلي.

إضافة عمود جديد

لإضافة عمود جديد إلى أ PostgreSQL الجدول، يتم استخدام الأمر ALTER TABLE مع بناء الجملة التالي:

ALTER TABLE table-name
  ADD new-column-name column-definition;

اسم الجدول هو اسم الجدول المراد تعديله. اسم العمود الجديد هو اسم العمود الجديد المراد إضافته. تعريف العمود هو نوع البيانات من العمود الجديد. انظر جدول الكتاب الموضح أدناه:

PostgreSQL مثال على تعديل الجدول

يحتوي الجدول على عمودين، id و name. نحتاج إلى إضافة عمود جديد إلى الجدول وتسميته author. ما عليك سوى تشغيل الأمر التالي:

ALTER TABLE Book
  ADD author VARCHAR(50);

بعد تشغيل الأمر أعلاه، أصبح جدول الكتاب الآن كما يلي:

PostgreSQL مثال على تعديل الجدول

تمت إضافة العمود الجديد بنجاح.

إعادة تسمية عمود الجدول

يمكننا استخدام الأمر ALTER TABLE لتغيير اسم العمود. في هذه الحالة، يتم استخدام الأمر بالصيغة التالية:

ALTER TABLE table-name
  RENAME COLUMN old-name TO new-name;

اسم الجدول هو اسم الجدول الذي سيتم تغيير اسم عموده. الاسم القديم هو الاسم الحالي للعمود، والاسم الجديد هو الاسم الجديد للعمود. انظر إلى جدول "الكتاب" الموضح أدناه:

كتاب:

PostgreSQL مثال على تعديل الجدول

نحتاج إلى تغيير اسم عمود المؤلف إلى book_author. إليك الأمر:

ALTER TABLE Book
  RENAME COLUMN author TO book_author;

بعد تشغيل الأمر، يمكننا عرض بنية الجدول:

PostgreSQL مثال على تعديل الجدول

تم تغيير اسم العمود بنجاح.

تحديد القيمة الافتراضية للعمود

يمكننا تعيين قيمة افتراضية لعمود ما، بحيث تُستخدم القيمة الافتراضية حتى عند عدم تحديد قيمة لهذا العمود أثناء عمليات الإدراج. في هذه الحالة، يمكن استخدام أمر ALTER TABLE بالصيغة التالية:

ALTER TABLE table-name ALTER COLUMN column-name [SET DEFAULT value];

اسم الجدول هو اسم الجدول الذي سيتم تعديل عموده. اسم العمود هو اسم العمود الذي سيتم تعيين قيمته الافتراضية، والقيمة هي القيمة الافتراضية لهذا العمود. انظر إلى جدول الكتب الموضح أدناه:

PostgreSQL مثال على تعديل الجدول

نحتاج إلى تعيين قيمة افتراضية لعمود book_author. يمكننا تشغيل الأمر التالي:

ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';

الآن دعونا نقوم بإدراج صف في الجدول:

INSERT INTO Book (id, name)
 VALUES (6, 'PostgreSQL for Beginners');

لاحظ أننا أدخلنا قيمًا لعمودين فقط، وهما المعرّف والاسم. مع ذلك، تم استخدام القيمة الافتراضية لعمود مؤلف الكتاب.

PostgreSQL مثال على تعديل الجدول

إضافة قيد التحقق

يساعد قيد التحقق في التحقق من صحة السجلات التي يتم إدراجها في الجدول. يمكننا القيام بذلك عن طريق دمج الأمر ALTER TABLE مع عبارة ADD CHECK. بناء الجملة:

ALTER TABLE table-name ADD CHECK expression;

اسم الجدول هو اسم الجدول المراد تعديله، والتعبير هو القيد المراد فرضه على عمود الجدول. لنقم بتعديل عمود book_author في جدول Book بحيث يقبل القيمتين Nicholas و Samuel فقط.

ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'));

الآن، دعونا نحاول إدراج قيمة أخرى غير Nicholas أو Samuel في عمود book_author في جدول Book:

INSERT INTO Book
VALUES(7, 'أفضل PostgreSQL Book', 'Gregory Bush');

سيؤدي هذا البيان إلى إرجاع الخطأ التالي:

PostgreSQL مثال على تعديل الجدول

فشلت عملية الإدراج بسبب انتهاكنا لقيد الفحص.

إعادة تسمية الجدول

فيما يلي بناء جملة الأمر ALTER TABLE لإعادة تسمية الجدول:

ALTER TABLE table-name
  RENAME TO new-table-name;

اسم الجدول هو الاسم الحالي للجدول، واسم الجدول الجديد هو الاسم الجديد الذي سيتم تعيينه للجدول. على سبيل المثال، لنغير اسم جدول الكتب إلى "الكتب":

ALTER TABLE Book
  RENAME TO Books;

باستخدام pgAdmin

حتى الآن، تم تنفيذ الإجراءات من خلال واجهة سطر أوامر SQL. والآن، دعونا نرى كيف يمكن تنفيذ هذه الإجراءات نفسها بصريًا باستخدام pgAdmin.

إضافة عمود جديد

الخطوة 1) قم بتسجيل الدخول إلى حساب pgAdmin الخاص بك.

الخطوة 2)

  1. من شريط التنقل الموجود على اليسار، انقر فوق قواعد البيانات.
  2. انقر فوق العرض التوضيحي.

PostgreSQL مثال على تعديل الجدول

الخطوة 3) اكتب الاستعلام في محرر الاستعلام:

ALTER TABLE Book
  ADD author VARCHAR(50);

الخطوة 4) انقر فوق الزر "تنفيذ".

PostgreSQL مثال على تعديل الجدول

الخطوة 5) للتأكد من إضافة العمود، قم بما يلي:

  1. انقر فوق قواعد البيانات من شريط التنقل الأيمن.
  2. قم بتوسيع العرض التوضيحي.
  3. قم بتوسيع المخططات.
  4. قم بتوسيع عام.
  5. قم بتوسيع الجداول.
  6. قم بتوسيع الكتاب.
  7. قم بتوسيع الأعمدة.

PostgreSQL مثال على تعديل الجدول

يجب إضافة العمود كما هو موضح أدناه:

PostgreSQL مثال على تعديل الجدول

إعادة تسمية عمود الجدول

الخطوة 1) قم بتسجيل الدخول إلى حساب pgAdmin الخاص بك.

الخطوة 2)

  1. من شريط التنقل الموجود على اليسار، انقر فوق قواعد البيانات.
  2. انقر فوق العرض التوضيحي.

PostgreSQL مثال على تعديل الجدول

الخطوة 3) اكتب الاستعلام في محرر الاستعلام:

ALTER TABLE Book
  RENAME COLUMN author TO book_author;

الخطوة 4) انقر فوق الزر "تنفيذ".

PostgreSQL مثال على تعديل الجدول

الخطوة 5) للتأكد من نجاح التغيير، قم بتوسيع أعمدة جدول الكتاب كما كان من قبل:

PostgreSQL مثال على تعديل الجدول

يجب أن تكون الأعمدة الآن كما يلي:

PostgreSQL مثال على تعديل الجدول

تم تغيير العمود بنجاح.

تحديد القيمة الافتراضية للعمود

الخطوة 1) قم بتسجيل الدخول إلى حساب pgAdmin الخاص بك.

الخطوة 2)

  1. من شريط التنقل الموجود على اليسار، انقر فوق قواعد البيانات.
  2. انقر فوق العرض التوضيحي.

PostgreSQL مثال على تعديل الجدول

الخطوة 3) اكتب الاستعلام في محرر الاستعلام:

ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';

الخطوة 4) انقر فوق الزر "تنفيذ".

PostgreSQL مثال على تعديل الجدول

الخطوة 5) للاختبار، قم بتشغيل الأمر التالي في محرر الاستعلامات:

INSERT INTO Book (id, name)
 VALUES (6, 'PostgreSQL for Beginners')

الخطوة 6) يمكننا الآن الاستعلام عن الجدول للتحقق مما إذا كانت القيمة الافتراضية قد تم إدراجها في عمود book_author:

PostgreSQL مثال على تعديل الجدول

إضافة قيد التحقق

الخطوة 1) قم بتسجيل الدخول إلى حساب pgAdmin الخاص بك.

الخطوة 2)

  1. من شريط التنقل الموجود على اليسار، انقر فوق قواعد البيانات.
  2. انقر فوق العرض التوضيحي.

PostgreSQL مثال على تعديل الجدول

الخطوة 3) اكتب الاستعلام في محرر الاستعلام:

ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'))

الخطوة 4) انقر فوق الزر "تنفيذ".

PostgreSQL مثال على تعديل الجدول

الخطوة 5) لاختبار ذلك، اكتب الاستعلام التالي في محرر الاستعلامات وانقر على زر التنفيذ:

INSERT INTO Book
VALUES(7, 'أفضل PostgreSQL Book', 'Gregory Bush');

PostgreSQL مثال على تعديل الجدول

سوف يعود ما يلي:

PostgreSQL مثال على تعديل الجدول

إعادة تسمية الجدول

الخطوة 1) قم بتسجيل الدخول إلى حساب pgAdmin الخاص بك.

الخطوة 2)

  1. من شريط التنقل الموجود على اليسار، انقر فوق قواعد البيانات.
  2. انقر فوق العرض التوضيحي.

PostgreSQL مثال على تعديل الجدول

الخطوة 3) اكتب الاستعلام في محرر الاستعلام:

ALTER TABLE Book
  RENAME TO Books;

الخطوة 4) انقر فوق الزر "تنفيذ".

PostgreSQL مثال على تعديل الجدول

الخطوة 5) للتحقق مما إذا تمت إعادة تسمية الجدول، قم بتوسيع قواعد البيانات > العرض التوضيحي > المخططات > عام > الجداول:

PostgreSQL مثال على تعديل الجدول

تمت إعادة تسمية الجدول بنجاح.

قم بتنزيل قاعدة البيانات المستخدمة في هذا البرنامج التعليمي

الأسئلة الشائعة

استخدم الأمر ALTER TABLE table_name ALTER COLUMN column_name TYPE new_type. أضف عبارة USING عند الحاجة إلى تحويل القيم، على سبيل المثال ALTER COLUMN price TYPE numeric USING price::numeric. PostgreSQL يقوم بإعادة كتابة العمود ويتحقق من أن البيانات الموجودة تتناسب مع النوع الجديد.

فقط إذا كان الوضع الافتراضي متقلبًا. لأن PostgreSQL 11. إضافة عمود بقيمة افتراضية ثابتة تُحدّث الكتالوج فورًا دون إعادة كتابة الصفوف. أما القيمة الافتراضية التي تستدعي دالة فتُجبر على إعادة كتابة الجدول بالكامل وتُفعّل قفلًا أقوى.

رقم PostgreSQL لا يمكن تعديل قيد موجود. احذف القيد الحالي باستخدام الأمر DROP CONSTRAINT، ثم أضف القيد المصحح باستخدام الأمر ADD CONSTRAINT. غلّف كلا الأمرين في معاملة واحدة حتى لا يبقى الجدول بدون القاعدة.

اذكر عدة إجراءات مفصولة بفواصل: ALTER TABLE Book ADD COLUMN price int, ADD COLUMN isbn text. PostgreSQL يطبق كل تغيير في تمريرة واحدة، مما يجعله أسرع ويحافظ على اتساق الجدول.

استخدم الأمر ALTER TABLE table_name ADD PRIMARY KEY (column) أو ADD CONSTRAINT pk_name PRIMARY KEY (column). يجب أن يحتوي العمود على قيم فريدة وغير فارغة؛ PostgreSQL يقوم بإنشاء فهرس فريد داعم تلقائيًا عند إنشاء المفتاح.

لا يُحدِّث الأمر RENAME سوى اسم الجدول في فهرس النظام. تبقى الصفوف والفهارس والقيود المخزنة كما هي دون تغيير. قد تحتاج طرق العرض أو الدوال التي تشير إلى الاسم القديم إلى التحديث بعد ذلك.

تقوم المساعدات الذكية بصياغة نصوص ALTER TABLE بناءً على تغيير موصوف، وترتيب خطوات الإضافة وإعادة التسمية والقيود بشكل صحيح، وإضافة عبارات USING لتحويل الأنواع. كما أنها تُشير إلى العمليات التي تُعيد كتابة جداول كبيرة أو تستخدم أقفالًا ثقيلة.

نعم. يقوم مساعد الذكاء الاصطناعي بمراجعة عملية الترحيل، ويحذر من عمليات القفل أو إعادة كتابة الجداول بالكامل، ويقترح تجميع البيانات أو إنشاء الفهارس بشكل متزامن، ويوصي بالتغليف.ping التغييرات في المعاملة، مما يجعل تحديثات المخطط أكثر أمانًا للنشر.

تلخيص هذه التدوينة بـ: