2011-02-15 176 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是非常好,我會鼓勵你檢查它無論何時你遇到問題的語法。