ALTER TABLE¶
摘要¶
ALTER TABLE [ IF EXISTS ] name RENAME TO new_name
ALTER TABLE [ IF EXISTS ] name ADD COLUMN [ IF NOT EXISTS ] column_name data_type [ COMMENT comment ] [ WITH ( property_name = expression [, ...] ) ]
ALTER TABLE [ IF EXISTS ] name DROP COLUMN column_name
ALTER TABLE [ IF EXISTS ] name RENAME COLUMN [ IF EXISTS ] column_name TO new_column_name
ALTER TABLE [ IF EXISTS ] name ADD [ CONSTRAINT constraint_name ] { PRIMARY KEY | UNIQUE } ( { column_name [, ...] } ) [ { ENABLED | DISABLED } ] [ [ NOT ] RELY ] [ [ NOT ] ENFORCED } ]
ALTER TABLE [ IF EXISTS ] name DROP CONSTRAINT [ IF EXISTS ] constraint_name
ALTER TABLE [ IF EXISTS ] ALTER [ COLUMN ] column_name { SET | DROP } NOT NULL
描述¶
更改现有表的定义。
可选的 IF EXISTS
(在表名之前使用时)子句会导致在表不存在时抑制错误。
可选的 IF EXISTS
(在列名之前使用时)子句会导致在列不存在时抑制错误。
可选的 IF NOT EXISTS
子句会导致在列已存在时抑制错误。
示例¶
将表 users
重命名为 people
ALTER TABLE users RENAME TO people;
如果表 users
存在,则将表 users
重命名为 people
ALTER TABLE IF EXISTS users RENAME TO people;
向 users
表添加列 zip
ALTER TABLE users ADD COLUMN zip varchar;
如果表 users
存在且列 zip
不存在,则向 users
表添加列 zip
ALTER TABLE IF EXISTS users ADD COLUMN IF NOT EXISTS zip varchar;
从 users
表中删除列 zip
ALTER TABLE users DROP COLUMN zip;
如果表 users
和列 zip
存在,则从 users
表中删除列 zip
ALTER TABLE IF EXISTS users DROP COLUMN IF EXISTS zip;
将 users
表中的列 id
重命名为 user_id
ALTER TABLE users RENAME COLUMN id TO user_id;
如果表 users
和列 id
存在,则将 users
表中的列 id
重命名为 user_id
ALTER TABLE IF EXISTS users RENAME column IF EXISTS id to user_id;
在 users
表的列 user_id
上添加约束 pk
ALTER TABLE users ADD CONSTRAINT pk PRIMARY KEY (user_id);
如果表 users
存在,则在 users
表的列 first_name
和 last_name
上添加未命名、禁用的唯一约束
ALTER TABLE IF EXISTS users ADD UNIQUE (first_name, last_name) DISABLED;
从 users
表中删除约束 pk
ALTER TABLE users DROP CONSTRAINT pk;
如果表 users
存在且约束 pk
存在,则从 users
表中删除约束 pk
ALTER TABLE IF EXISTS users DROP CONSTRAINT IF EXISTS pk;
向 users
表的列 zip
添加非空约束
ALTER TABLE users ALTER COLUMN zip SET NOT NULL;
如果表 users
存在,则向 users
表的列 zip
添加非空约束
ALTER TABLE IF EXISTS users ALTER zip SET NOT NULL;
从 users
表的列 zip
中删除非空约束
ALTER TABLE users ALTER COLUMN zip DROP NOT NULL;