it-swarm.dev

إضافة أعمدة متعددة بعد عمود معين في MySQL

أحتاج إلى إضافة أعمدة متعددة إلى جدول ، ولكن ضع الأعمدة بعد عمودًا يسمى lastname.

لقد جربت هذا:

ALTER TABLE `users` ADD COLUMN
(
    `count` smallint(6) NOT NULL,
    `log` varchar(12) NOT NULL,
    `status` int(10) unsigned NOT NULL
) 
AFTER `lastname`;

لقد حصلت على هذا الخطأ:

لديك خطأ في بناء جملة SQL الخاص بك؛ تحقق من الدليل الذي يتوافق مع إصدار خادم MySQL للحصول على الصيغة الصحيحة لاستخدامها بالقرب من ") AFTER lastname" في السطر 7


كيف يمكنني استخدام بعد في استعلام مثل هذا؟

303
Koala

جرب هذا

ALTER TABLE users
ADD COLUMN `count` SMALLINT(6) NOT NULL AFTER `lastname`,
ADD COLUMN `log` VARCHAR(12) NOT NULL AFTER `count`,
ADD COLUMN `status` INT(10) UNSIGNED NOT NULL AFTER `log`;

تحقق من بناء الجملة

619
Ayyappan Sekar

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

ALTER TABLE users
    ADD COLUMN count SMALLINT(6) NOT NULL
    AFTER lastname

إذا كنت ترغب في إضافة أعمدة متعددة ، فأنت بحاجة إلى استخدام الأمر "ADD" في كل مرة لعمود. إليك استعلام MySQL لهذا:

ALTER TABLE users
    ADD COLUMN count SMALLINT(6) NOT NULL,
    ADD COLUMN log VARCHAR(12) NOT NULL,
    ADD COLUMN status INT(10) UNSIGNED NOT NULL
    AFTER lastname

أشر إلى ملاحظة

في الطريقة الثانية ، يجب أن يكون آخر ADD COLUMN العمود في الواقع العمود الأول الذي تريد إلحاقه بالجدول.

على سبيل المثال: إذا كنت ترغب في إضافة count ، log ، status بالترتيب الدقيق بعد lastname ، فسيكون بناء الجملة في الواقع:

ALTER TABLE users
    ADD COLUMN log VARCHAR(12) NOT NULL,
    ADD COLUMN status INT(10) UNSIGNED NOT NULL,
    ADD COLUMN count SMALLINT(6) NOT NULL
    AFTER lastname
70
user3106476

هذا صحيح:

ALTER TABLE `users`
    ADD COLUMN `count` SMALLINT(6) NOT NULL AFTER `lastname`,
    ADD COLUMN `log` VARCHAR(12) NOT NULL AFTER `count`,
    ADD COLUMN `status` INT(10) UNSIGNED NOT NULL AFTER `log`;
9
Denys Popov

لا يمكنك ذكر أسماء أعمدة متعددة باستخدام فواصل باستخدام ADD COLUMN. تحتاج إلى ذكر ADD COLUMN في كل مرة تحدد فيها عمودًا جديدًا.

8
Piyush Saxena

ALTER TABLE users إضافة COLOR COLUMN NAME DATATYPE (SIZE) AFTER EXISTING COLUMN NAME؛

يمكنك القيام بذلك مع هذا ، تعمل بشكل جيد بالنسبة لي.

2
Gaurav Singh

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

1
Ahmed

هذا يفي بالغرض بالنسبة لي:

ALTER TABLE 'users'
ADD COLUMN 'count' SMALLINT(6) NOT NULL AFTER 'lastname',
ADD COLUMN 'log' VARCHAR(12) NOT NULL AFTER 'count',
ADD COLUMN 'status' INT(10) UNSIGNED NOT NULL AFTER 'log';
0
Aiswarya T S