ALTER 对于列的应用: 1.更改列名 格式:CHANGE
old_col_name
new_col_name
column_definition
保留old和new列名 列名:a —->b 列类型 ALTER TABLE t1 CHANGE a b INTEGER; 2.更改列类型,不改列名 保留old和new的列名,即使一样。 ALTER TABLE t1 CHANGE b b BIGINT NOT NULL; 3.更改列类型,不改列名。 不保留old列名。 ALTER TABLE t1 MODIFY b BIGINT NOT NULL; 注意: < 1>.使用CHANGE或者MODIFY时,列的定义必须包含:数据的类型和应用到列上的属性,但不包括:索引,例如:
PRIMARY KEY
or
UNIQUE
例如: 列的定义:
INT UNSIGNED DEFAULT 1 COMMENT 'my column'
更改 : ALTER TABLE t1 MODIFY col1
BIGINT UNSIGNED DEFAULT 1 COMMENT ‘my column’; <2>.使用CHANGE或者MODIFY改变数据类型时,列的值也会尽可能转成对应的列类型。可能会丢失数据,最好,在使用ALTER table 之前设置;strict SQL mode <3>.增加指定位置的列,可以用FIRST,AFTER column_name, <4>.使用CHANGE,MODIFY缩短列的长度候,列长小于对应索引长度,索引会自动缩短。 4.更改列的默认值:ALTER TABLE tb_name ALTER column_name。 CREATE TABLE test2(id INT ,NAME VARCHAR(4)); 在不指定默认值的情况下,建表之后:默认null。 更改默认值:ALTER TABLE test2 ALTER name SET DEFAULT ”; 注意:更改默认值 只对更改之后,新插入的数据有效。表中以前的数据,是NULL还是NULL,是空还是空。