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` 列に NOT NULL 制約を追加します
ALTER TABLE users ALTER COLUMN zip SET NOT NULL;
テーブル `users` が存在する場合、`users` テーブルの `zip` 列に NOT NULL 制約を追加します
ALTER TABLE IF EXISTS users ALTER zip SET NOT NULL;
`users` テーブルの `zip` 列から NOT NULL 制約を削除します
ALTER TABLE users ALTER COLUMN zip DROP NOT NULL;