MySQL DEFAULT 制約
1. MySQL DEFAULT 制約の概要
DEFAULT 制約は、カラム(列)に対して値が明示的に指定されなかった場合に、デフォルト値(初期値)を自動的に挿入するために使用されます。
この設定を行うと、新しいレコードが作成される際、対象のカラムに値が渡されなければあらかじめ定義された値が格納されます。
2. CREATE TABLE 時の DEFAULT 設定
テーブルを作成する際に、"City"(都市)カラムに対してデフォルト値を設定する SQL 構文は以下の通りです。
実行例
/* Persons テーブルを作成し、City のデフォルト値を 'Sandnes' に設定 */
CREATE TABLE Persons (
ID int PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
City varchar(255) DEFAULT 'Sandnes'
);3. システム値(関数)を使用した DEFAULT 設定
DEFAULT 制約では、特定の固定値だけでなく、CURRENT_DATE() などの関数を使用してシステム値を挿入することも可能です。これにより、レコード作成時の日付などを自動的に記録できます。
実行例
/* Orders テーブルを作成し、OrderDate に現在のシステム日付をデフォルト設定 */
CREATE TABLE Orders (
ID int PRIMARY KEY,
OrderNumber int NOT NULL,
OrderDate date DEFAULT CURRENT_DATE()
);4. ALTER TABLE 時の DEFAULT 設定
すでに作成済みのテーブルに対して DEFAULT 制約を定義(または変更)する場合は、以下の SQL 構文を使用します。
実行例
/* 既存の Persons テーブルの City カラムにデフォルト値を設定 */
ALTER TABLE Persons
ALTER City SET DEFAULT 'Sandnes';5. DEFAULT 制約の削除
設定されている DEFAULT 制約を削除するには、以下の SQL を実行します。
実行例
/* City カラムのデフォルト値設定を解除 */
ALTER TABLE Persons
ALTER City DROP DEFAULT;