MySQL Alter Table Добавить поле до или после поля, уже присутствующего
У меня это есть, но это не работает:
$query = "ALTER TABLE `".$table_prefix."posts_to_bookmark`
ADD `ping_status` INT( 1 ) NOT NULL BEFORE `onlywire_status`";
Я ценю это!
Ответы
Ответ 1
$query = "ALTER TABLE '" . $table_prefix . "posts_to_bookmark'
ADD COLUMN 'ping_status' INT(1) NOT NULL
AFTER '<TABLE COLUMN BEFORE THIS COLUMN>'";
Я считаю, что вам нужно ADD COLUMN
и использовать AFTER
, а не BEFORE
.
Если вы хотите разместить столбец в начале таблицы, используйте оператор FIRST
:
$query = "ALTER TABLE '" . $table_prefix . "posts_to_bookmark'
ADD COLUMN 'ping_status' INT(1) NOT NULL
FIRST";
http://dev.mysql.com/doc/refman/5.1/en/alter-table.html
Ответ 2
Чтобы избежать утечки здесь один и тот же код с использованием heredocs, чтобы было проще копировать/вставлять, читать и изменять, надеемся, что это пригодится для некоторых:
Пример "Пример":
$query = <<<EOT
ALTER TABLE `{$table_prefix}posts_to_bookmark`
ADD COLUMN `ping_status` INT(1) NOT NULL
AFTER `<TABLE COLUMN BEFORE THIS COLUMN>`;
EOT;
Пример "Первый":
$query = <<<EOT
ALTER TABLE `{$table_prefix}posts_to_bookmark`
ADD COLUMN `ping_status` INT(1) NOT NULL
FIRST
EOT;