如何将列的类型从varchar30更改为varcahar100?

问题描述

| 我有一张表描述如下:
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;
我收到此错误:   错误1064(42000):您的sql语法有错误;检查   与您的MysqL服务器版本相对应的手册   在第1行的\'varchar(100)\'附近使用的语法     

解决方法

alter table easy_table modify column city varchar(100) not null;
    ,使用Modify关键字,而不是Alter     ,
alter table easy_table modify city VARCHAR(100) ; 
必须是您命令更改列的大小。 请参考此页面。这是有用的链接。 http://php.about.com/od/learnmysql/p/alter_table.htm     ,尝试
alter table easy_table change city city varchar(100);