MySQL Alter Table Добавить поле до или после поля, уже присутствующего

У меня это есть, но это не работает:

$query = "ALTER TABLE `".$table_prefix."posts_to_bookmark` ADD `ping_status` INT( 1 ) NOT NULL BEFORE `onlywire_status`"; 

Я ценю это!

 $query = "ALTER TABLE `".$table_prefix."posts_to_bookmark` ADD COLUMN `ping_status` INT(1) NOT NULL AFTER `<TABLE COLUMN BEFORE THIS COLUMN>`"; 

Я считаю, что вам нужно «ДОБАВИТЬ КОЛОННУЮ» и использовать «ПОСЛЕ», а не «ПЕРЕД».

Если вы хотите разместить столбец в начале таблицы, используйте инструкцию «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

Чтобы избежать утечки, здесь используется один и тот же код с использованием 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;