· 您可以在一个ALTER TABLE语句里写入多个ADD, ALTER, DROP和CHANGE子句,中间用逗号分开。这是
MySQL相对于标准SQL的扩展。在标准SQL中,每个ALTER TABLE语句中每个子句只允许使用一次。例如,在一个语句中取消多个列:
· mysql> ALTER TABLE t2 DROP COLUMN c, DROP COLUMN d;
创建表
以下例子展示了ALTER TABLE的使用。首先展示表t1。表t1采用如下方法创建:
mysql> CREATE TABLE t1 (a INTEGER,b CHAR(10));
修改表名
把表t1重新命名为t2:
mysql> ALTER TABLE t1 RENAME t2;
修改列的类型,名称
把列a从INTERGER更改为TINYINT NOT NULL(名称保持不变),并把列b从CHAR(10)更改为CHAR(20),同时把列b重新命名为列c:
mysql> ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20);
添加列
添加一个新的TIMESTAMP列,名称为d:
mysql> ALTER TABLE t2 ADD d TIMESTAMP;
添加索引
在列d和列a中添加索引:
mysql> ALTER TABLE t2 ADD INDEX (d), ADD INDEX (a);
删除列
删除列c:
mysql> ALTER TABLE t2 DROP COLUMN c;
添加自动增长列
添加一个新的AUTO_INCREMENT整数列,名称为c:
mysql> ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT,
-> ADD PRIMARY KEY (c);
注意我们为c编制了索引(作为PRIMARY KEY),因为AUTO_INCREMENT列必须编制索引。同时我们定义c为NOT NULL,因为主键列不能为NULL。
-------
ps:添加自动增长我就没成功过.-0-~
附上 创建带有自动增长列的表
CREATE TABLE test_table(
Id int(6) unsigned NOT NULL auto_increment,
name varchar(10),
primary key (id)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
· mysql> ALTER TABLE t2 DROP COLUMN c, DROP COLUMN d;
创建表
以下例子展示了ALTER TABLE的使用。首先展示表t1。表t1采用如下方法创建:
mysql> CREATE TABLE t1 (a INTEGER,b CHAR(10));
修改表名
把表t1重新命名为t2:
mysql> ALTER TABLE t1 RENAME t2;
修改列的类型,名称
把列a从INTERGER更改为TINYINT NOT NULL(名称保持不变),并把列b从CHAR(10)更改为CHAR(20),同时把列b重新命名为列c:
mysql> ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20);
添加列
添加一个新的TIMESTAMP列,名称为d:
mysql> ALTER TABLE t2 ADD d TIMESTAMP;
添加索引
在列d和列a中添加索引:
mysql> ALTER TABLE t2 ADD INDEX (d), ADD INDEX (a);
删除列
删除列c:
mysql> ALTER TABLE t2 DROP COLUMN c;
添加自动增长列
添加一个新的AUTO_INCREMENT整数列,名称为c:
mysql> ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT,
-> ADD PRIMARY KEY (c);
注意我们为c编制了索引(作为PRIMARY KEY),因为AUTO_INCREMENT列必须编制索引。同时我们定义c为NOT NULL,因为主键列不能为NULL。
-------
ps:添加自动增长我就没成功过.-0-~
附上 创建带有自动增长列的表
CREATE TABLE test_table(
Id int(6) unsigned NOT NULL auto_increment,
name varchar(10),
primary key (id)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;