在MySQL中,如何在已有字段之前或之后添加一个字段?

96

我有以下代码,但是它并不起作用:

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

我很感激!

1个回答

218
$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/zh-cn/alter-table.html


42
是的,之后或者先做,而不是之前。+1 - dwich
太棒了,完成了。谢谢! - atwellpub
1
在使用“为什么我想把这个字段放在那里”之前,需要理解“BEFORE”的意义。当我将一行中的“系列”字段的第一个位置作为目标时,只需添加“# AKA BEFORE fieldname”。 - Moosh
使用[FIRST | AFTER col_name] https://dev.mysql.com/doc/refman/8.0/en/alter-table.html - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接