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,是空還是空。