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_namelast_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;

另請參閱

CREATE TABLE