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;
將欄位 zip
新增到 users
表格
ALTER TABLE users ADD COLUMN zip varchar;
如果表格 users
存在且欄位 zip
尚未存在,則將欄位 zip
新增到 users
表格
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;