初心者でも安心!MySQLで初期値と自動増分を設定する方法
MySQLで初期値と自動増分を設定する方法
MySQLでテーブルを作成する際、特定のカラムに初期値を設定したり、レコード挿入時に自動的に値を増加させる自動増分機能を設定することができます。
初期値の設定
DEFAULT属性
カラム定義時にDEFAULT
属性を使用して、初期値を設定できます。
CREATE TABLE users (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(255) DEFAULT 'John Doe',
email VARCHAR(255) DEFAULT '[email protected]'
);
上記例では、name
カラムの初期値は'John Doe'
、email
カラムの初期値は'[email protected]'
に設定されます。
INSERT
文でレコードを挿入する際に、個別に値を指定することで初期値を設定できます。
INSERT INTO users (name, email) VALUES ('Jane Doe', '[email protected]');
自動増分の設定
AUTO_INCREMENT属性
カラム定義時にAUTO_INCREMENT
属性を使用して、自動増分を設定できます。
CREATE TABLE users (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(255),
email VARCHAR(255)
);
上記例では、id
カラムは自動増分カラムとして設定されます。
PRIMARY KEY制約
自動増分カラムは、主キー(PRIMARY KEY)として設定する必要があります。
CREATE TABLE users (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255),
email VARCHAR(255)
);
初期値と自動増分の同時設定
DEFAULT
属性とAUTO_INCREMENT
属性を同時に使用することができます。
CREATE TABLE users (
id INT NOT NULL AUTO_INCREMENT DEFAULT 1,
name VARCHAR(255),
email VARCHAR(255)
);
注意点
- 自動増分カラムは、
INT
、BIGINT
、SMALLINT
などの整数型のみ使用できます。 AUTO_INCREMENT
属性は、NOT NULL
属性と組み合わせて使用する必要があります。- 一度設定した自動増分値を減らすことはできません。
-- テーブル作成
CREATE TABLE users (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) DEFAULT 'John Doe',
email VARCHAR(255) DEFAULT '[email protected]',
age INT
);
-- レコード挿入
INSERT INTO users (name, email, age) VALUES ('Jane Doe', '[email protected]', 25);
INSERT INTO users (name, email) VALUES ('John Smith', '[email protected]');
-- レコード取得
SELECT * FROM users;
-- 結果
-- id | name | email | age
-- --- | -------- | ---------------------- | ---
-- 1 | John Doe | [email protected] | NULL
-- 2 | Jane Doe | [email protected] | 25
-- 3 | John Smith | [email protected] | NULL
- 上記コードは、
users
というテーブルを作成します。 name
とemail
カラムには初期値を設定しています。age
カラムには初期値を設定していないため、NULLになります。INSERT
文を使用してレコードを挿入します。
- 上記コードは基本的な例です。必要に応じて、コードを修正して使用してください。
- 詳細については、MySQLのリファレンスマニュアルを参照してください。
初期値と自動増分を設定するその他の方法
INSERT
文のSET
句を使用して、個別に値を設定することができます。
INSERT INTO users SET name = 'John Doe', email = '[email protected]';
ALTER TABLE
文を使用して、DEFAULT
値を変更することができます。
ALTER TABLE users ALTER COLUMN name SET DEFAULT 'Jane Doe';
上記例では、name
カラムのDEFAULT
値は'Jane Doe'
に変更されます。
ALTER TABLE users AUTO_INCREMENT = 100;
上記例では、AUTO_INCREMENT
値は100に変更されます。
- 上記の方法を使用する場合は、
AUTO_INCREMENT
カラムが主キーとして設定されていることを確認してください。 AUTO_INCREMENT
値を変更すると、既存のレコードのIDが変更される可能性があります。
mysql insert auto-increment