2011-05-26 160 views
6

我得到一個超級n00b錯誤,需要語法幫助。語法幫助! SQL Alter Table Alter Column varchar(30) - > varcahar(100)

我有這樣描述一個表格:

mysql> describe easy_table; 
+---------------------+--------------+------+-----+---------+----------------+ 
| Field    | Type   | Null | Key | Default | Extra   | 
+---------------------+--------------+------+-----+---------+----------------+ 
| id     | bigint(20) | NO | PRI | NULL | auto_increment | 
| version    | bigint(20) | NO |  | NULL |    | 
| account_id   | bigint(20) | NO | MUL | NULL |    | 
| city    | varchar(30) | NO |  | NULL |    | 
... 
| name    | varchar(255) | YES |  | NULL |    | 
| name_two   | varchar(255) | YES |  | NULL |    | 
+---------------------+--------------+------+-----+---------+----------------+ 
13 rows in set (0.03 sec) 

我試圖讓城市的varchar更大爲varchar(100)和該行不起作用

alter table easy_table alter column city varchar(100); 

這也不起作用

alter table easy_table alter column city varchar(100) not null; 

我得到這個錯誤:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'varchar(100)' at line 1 

回答

20
alter table easy_table modify column city varchar(100) not null; 
+0

'MODIFY'將刪除該列的任何其他元數據不在聲明中指定,所以任何'DEFAULT'值,'NOT NULL'等等。爲了保存其他元數據,請參見[this post](http://stackoverflow.com/questions/22914453/change-column-data-型合的MySQL-而不預虧-其他元數據 - 缺省 - NOTNULL)。 – dyllandry 2017-01-04 15:23:52

0

嘗試

alter table easy_table change city city varchar(100); 
1

使用修改關鍵字,不會改變