atwellpub atwellpub - 3 months ago 11
MySQL Question

MySQL Alter Table Add Field Before or After a field already present

I have this, but it doesn't work:

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


I appreciate it!

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

I believe you need to have "ADD COLUMN" and use "AFTER", not "BEFORE".

In case you want to place column at the beginning of a table, use the "FIRST" statement:

$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