我想编写一个SQL命令,以便在一个ALTER TABLE语句中从一个表中删除多个列。
从MSDN的ALTER文档..。
删除{约束constraint_name列column_name } 指定从表中删除constraint_name或column_name。如果兼容性级别为65或更高,则不允许删除列。可以列出多个列和约束。
它说,可以在语句中列出多列,但是语法没有显示可选逗号或任何提示语法的内容。
我应该如何写我的SQL,以便在一个语句中删除多个列(如果可能)?
发布于 2013-09-01 23:45:56
总结
ALTER TABLE table_name DROP (column_name1, column_name2);ALTER TABLE table_name DROP COLUMN column_name1, column_name2ALTER TABLE table_name DROP column_name1, DROP column_name2;ALTER TABLE table_name DROP COLUMN column_name1, DROP COLUMN column_name2;注意
DROP COLUMN不会物理地删除某些DBMS的数据。例如对于MS SQL。对于固定长度的类型(int、数值、浮点数、日期时间、unique标识符等),即使在删除列之后添加的记录,也会占用空间。为了摆脱浪费的空间,做ALTER TABLE ... REBUILD吧。
发布于 2011-06-14 15:36:48
create table test (a int, b int , c int, d int);
alter table test drop column b, d;请注意,DROP列不会实际删除数据,对于固定长度的类型(int、数值、浮点数、日期时间、unique标识符等),即使在删除列之后添加的记录,也会占用空间。为了摆脱浪费的空间,做ALTER TABLE ... REBUILD吧。
发布于 2013-03-11 05:55:44
这可能是晚了,但分享给访问这个问题的新用户。要删除多列,实际语法是
alter table tablename drop column col1, drop column col2 , drop column col3 ....因此,对于Mysql 5.0.45中的每一列,您都需要指定"drop列“。
https://stackoverflow.com/questions/6346120
复制相似问题