CREATE TABLE `b` (
`b_id` int(3) DEFAULT NULL,
`address` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=gb2312 |
我用下面两段代码修改 b_id列的名称
ALTER TABLE b RENAME column b_id to id ;
alter table b change id b_id int(3);
执行第一段代码报如下错误
Database changed
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 'colum
n b_id to id' at line 1
我之所以想用第一种方式是因为第一种方式简单些 不需要重写一次列的属性和约束
我不知道为什么第一种方法不行
8 个解决方案
#1
mysql> CREATE TABLE `b` (
-> `b_id` int(3) DEFAULT NULL,
-> `address` varchar(255) DEFAULT NULL
-> ) ENGINE=InnoDB DEFAULT CHARSET=gb2312 ;
Query OK, 0 rows affected (0.12 sec)
mysql> alter table b change b_id id int default null;
Query OK, 0 rows affected (0.21 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql>
#3
更改列名用change,
RENAME是更改表名
RENAME是更改表名
#4
rename只能对应表名的修改
change才是修改列名的
还有一个modify是修改列属性的
change才是修改列名的
还有一个modify是修改列属性的
#5
太感谢你们的回答了 原来是我的书上写错了 我的mysql教程上说rename column是用来改变列名的
#6
古人说的,尽信书不如无书。
#7
强
#8
书的错误太正常了,尤其是计算机的中文书籍。
#1
mysql> CREATE TABLE `b` (
-> `b_id` int(3) DEFAULT NULL,
-> `address` varchar(255) DEFAULT NULL
-> ) ENGINE=InnoDB DEFAULT CHARSET=gb2312 ;
Query OK, 0 rows affected (0.12 sec)
mysql> alter table b change b_id id int default null;
Query OK, 0 rows affected (0.21 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql>
#2
#3
更改列名用change,
RENAME是更改表名
RENAME是更改表名
#4
rename只能对应表名的修改
change才是修改列名的
还有一个modify是修改列属性的
change才是修改列名的
还有一个modify是修改列属性的
#5
太感谢你们的回答了 原来是我的书上写错了 我的mysql教程上说rename column是用来改变列名的
#6
古人说的,尽信书不如无书。
#7
强
#8
书的错误太正常了,尤其是计算机的中文书籍。