语法帮助! 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;
答
尝试
alter table easy_table change city city varchar(100);
答
alter table easy_table modify city VARCHAR(100) ;
必须是你命令更改列的大小。
请参阅此页面。这是非常有用的链接..
答
使用修改关键字,不会改变
'MODIFY'将删除该列的任何其他元数据不在声明中指定,所以任何'DEFAULT'值,'NOT NULL'等等。为了保存其他元数据,请参见[this post](http://stackoverflow.com/questions/22914453/change-column-data-型合的MySQL-而不预亏-其他元数据 - 缺省 - NOTNULL)。 – dyllandry 2017-01-04 15:23:52