表结构很简单
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我之所以想用第一种方式是因为第一种方式简单些 不需要重写一次列的属性和约束
我不知道为什么第一种方法不行
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我之所以想用第一种方式是因为第一种方式简单些 不需要重写一次列的属性和约束
我不知道为什么第一种方法不行
-> `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: 0mysql>
RENAME是更改表名
change才是修改列名的
还有一个modify是修改列属性的