我想知道在alter table中使用change,modify,column时mysql是如何工作的? 通过复制表,并改变差异?或者一些......谢谢
答案 0 :(得分:8)
每当必须更改MySQL中的列时(通常不会这样),请始终忘记ALTER COLUMN, CHANGE COLUMN, and MODIFY COLUMN
之间的区别。
ALTER COLUMN
用于设置或删除列的默认值。例如:
ALTER TABLE MyTable ALTER COLUMN foo SET DEFAULT 'bar';
ALTER TABLE MyTable ALTER COLUMN foo DROP DEFAULT;
更改栏目
用于重命名列,更改其数据类型或在架构中移动它。例如:
ALTER TABLE MyTable CHANGE COLUMN foo bar VARCHAR(32) NOT NULL FIRST;
ALTER TABLE MyTable CHANGE COLUMN foo bar VARCHAR(32) NOT NULL AFTER baz;
MODIFY COLUMN
用于执行CHANGE COLUMN可以执行的所有操作,但无需重命名列。例如:
ALTER TABLE MyTable MODIFY COLUMN foo VARCHAR(32) NOT NULL AFTER baz;
<强> http://dev.mysql.com/doc/refman/5.1/en/alter-table.html 强>