MySQL は、広く使用されているリレーショナル データベース管理システムです。 MySQL では、テーブル内のカラムにデフォルト値を設定して、新しい行が挿入されるときに、ユーザーがカラムの値を指定しない場合、カラムには自動的にデフォルト値が設定されるようにすることができます。この記事では、MySQL でデフォルト値を設定する方法について説明します。
デフォルト値は、テーブルに新しい行が挿入されるときに列に自動的に設定される値です。ユーザーが列の値を指定しない場合、システムは自動的にデフォルト値を列に設定します。ユーザーが値を指定すると、その値が列の値として使用されます。
MySQL では、DEFAULT キーワードを使用してデフォルト値を設定できます。このキーワードは、新しい行を挿入するときにデフォルト値を使用するようにシステムに指示します。次に例を示します。
最初に、id、ユーザー名、電子メールの 3 つの列を持つ単純なテーブルを作成しましょう。
CREATE TABLE users(
id INT NOT NULL AUTO_INCREMENT ,
username VARCHAR(50) NOT NULL,
email VARCHAR(50) NOT NULL,
PRIMARY KEY (id)
);
次に、テーブルに新しい列を追加します。 created_at を、各ユーザーの作成日時を含むデフォルト値に置き換えます:
ALTER TABLE users ADD created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP;
上記のステートメントでは、ADD キーワードを使用して、テーブルに新しい列を追加します。 DEFAULT CURRENT_TIMESTAMP 句を使用して、この列のデフォルト値を現在のタイムスタンプに設定します。つまり、新しい行を挿入すると、システムは自動的に created_at 列を現在の時刻に設定します。
定数を使用してデフォルト値を設定することもできます。たとえば、ブール列を設定したい場合は、次のステートメントを使用できます:
ALTER TABLE users ADD is_active BOOLEAN DEFAULT TRUE;
上記のステートメントでは、DEFAULT 句を使用します。ブール列のデフォルト値は TRUE です。
列のデフォルト値を変更したい場合は、ALTER TABLE ステートメントを使用できます。たとえば、created_at 列のデフォルト値を 2020 年 1 月 1 日に変更してみましょう:
ALTER TABLE users MODIFY created_at TIMESTAMP DEFAULT '2020-01-01 00:00:00';
上記のステートメントでは、MODIFY キーワードを使用して、created_at 列のデータ型とデフォルト値を変更します。 DEFAULT 句でデフォルトの日付と時刻を指定しました。これは、新しい行を挿入するときに自動的に使用されます。
列のデフォルト値を削除したい場合は、ALTER TABLE ステートメントを使用できます。たとえば、created_at 列のデフォルト値を削除してみましょう:
ALTER TABLE users ALTER COLUMN created_at DROP DEFAULT;
上記のステートメントでは、ALTER COLUMN コマンドを使用してデフォルト値を削除します。 created_at 列の。
列のデフォルト値を表示するには、DESCRIBE または SHOW CREATE TABLE ステートメントを使用できます。たとえば、次は DESCRIBE ステートメントを使用して users テーブルの詳細を表示します:
DESCRIBE users;
出力は次のとおりです:
タイプ | Null | キー | デフォルト | 追加 | |
---|---|---|---|---|---|
int(11) | NO | PRI | NULL | auto_increment | |
varchar(50) | NO | NULL | |||
varchar(50) | NO | NULL | |||
timestamp | YES | NULL | |||
tinyint(1) | YES | 1 |
users (
id int(11) NOT NULL AUTO_INCREMENT,
username varchar(50) NOT NULL,
email varchar(50 ) NOT NULL,
created_at タイムスタンプ NULL DEFAULT NULL,
is_active tinyint(1) DEFAULT '1',
主キー (
id##) #) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
上記の表では、created_at 列のデフォルト値が NULL であることがわかります。
以上がmysqlはデフォルト値を設定しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。