2011-02-15 178 views
0

重访MySQL,并尝试更改表的结构。我想将varchar(30)中的两行更改为更高。MySQL表更改表结构

我用Google搜索它,并试图似乎是正确的说法,但我得到一个语法错误:

ALTER TABLE 'compdetails' CHANGE 'compName' varchar(60) not null; 

这种说法不过给我一个语法错误。我也尝试过没有任何运气的表格/列名周围的''。

"Error 2064 (42000): You have an error in your SQL Syntax...."

任何人都可以慢跑我的记忆?

回答

1

就是这么回事,

ALTER TABLE 'compdetails' CHANGE compName compName varchar(60) not null; 
1
ALTER TABLE `compdetails` MODIFY COLUMN `compName` varchar(60) not null; 
+0

提问者是否也应该记住,在发出ALTER命令之前,compName中的数据不能包含任何NULLS? – diagonalbatman 2011-02-15 10:30:26

1

首先,如果你要引用表名,那么你就需要使用回蜱不是单引号。单引号仅用于字符串文字。

其次,当您想要重命名列时使用CHANGE,而MODIFY允许您在不重命名的情况下更改列定义。所以,你应该使用:

ALTER TABLE compdetails MODIFY compName varchar(60) NOT NULL; 

在线MySQL documentation是非常好,我会鼓励你检查它无论何时你遇到问题的语法。