语法帮助! SQL Alter Table Alter Column varchar(30) - > varcahar(100)

问题描述:

我得到一个超级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 

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

尝试

alter table easy_table change city city varchar(100); 

alter table easy_table modify city VARCHAR(100) ; 

必须是你命令更改列的大小。

请参阅此页面。这是非常有用的链接..

http://php.about.com/od/learnmysql/p/alter_table.htm

使用修改关键字,不会改变