ALTER TABLE 语句分为以下几个部分:
部分 说明
- table 指定修改的表。
- field 指定在表内增加或删除的字段。
- type 字段的数据类型。
- size 字段的字符长度 (文本及二进制字段)。
- index 字段索引。了解更多有关如何构造本索引的信息,请看 CONSTRAINT子句。
- multifieldindex 增加至表中的多重字段索引的定义。了解更多有关如何构造本索引的信息,请看 CONSTRAINT子句。
- indexname 删除的多重字段索引的名称。
说明
使用 ALTER TABLE 语句,可用多种不同方法更改当前已存在的表:你可以:
使用 ADD COLUMN 在表中添加新的字段。需要指定字段名、数据类型、还可以 (对文本和二进制字段)指定长度。
例如,下列语句在员工表中增加一 25 个字符的、名为 Notes 的文本字段:
ALTER TABLE Employees ADD COLUMN Notes TEXT(25)
也可以定义此字段的索引。关于单一字段索引的详细信息,请参阅CONSTRAINT 子句主题。
如果对一字段指定 NOT NULL,则在这字段中添加的新记录必须有有效的数据。
使用ALTER COLUMN改变一个当前字段的数据类型,需要指定字段名、新数据类型、还可以 (对文本和二进制字段)指定长度。
例如,下列语句把雇员表中一个字段的数据类型, 被称为ZipCode(最初被定义为整数),改变成一个10字符文本字段:
ALTER TABLE Employees ALTER COLUMN ZipCode TEXT(10)
- 使用 ADD CONSTRAINT 添加多重字段索引。关于多重字段索引的详细信息,请参阅 CONSTRAINT 子句主题。
- 使用 DROP COLUMN 删除字段。只要指定欲删除的字段名即可。
- 使用 DROP CONSTRAINT 删除多重字段索引。只要在 CONSTRAINT 保留字后面指定索引名即可。
注意
- 不能同时添加或删除一个以上的字段或索引。
- 你可以使用 CREATE INDEX 语句在一个表中增加一个单字段或多重字段,你还可以使用 ALTER TABLE 或 DROP 语句删除一个由ALTER TABLE或CREATE INDEX建立的索引。
- 可以在单一字段上使用 NOT NULL,或在用于单一字段或多重字段(名为 CONSTRAINT) 的 CONSTRAINT 子句中使用 NOT NULL。但是,一个字段只能使用一次 NOT NULL 限制。尝试多次应用此限制将导致运行错误。
重命名替换字段
CREATE TABLE t1(a INT, b VARCHAR(30), c FLOAT); ALTER TABLE t1 RENAME COLUMN a TO defg; # Rename multiple column ALTER TABLE t1 RENAME COLUMN defg TO ijkl, RENAME COLUMN b TO mno, RENAME COLUMN c TO pqr; # Mix different ALTER operations ALTER TABLE t1 CHANGE COLUMN ijkl a INT, RENAME COLUMN mno TO b, RENAME COLUMN pqr to c;
完结!