MySQLのきほん「オートインクリメント」

スポンサーリンク
MySQL

主キーとなりうるフィールドが存在しない場合は、新たに一意となるようなフィールドを追加すればよい、新たに主キーとして予定コードを追加する方法もあるが、ひとつひとのレコードに予定コードを設定するのも面倒である。
このような場合、自動的に連番を振ってくれるのが、オートインクリメント機能である。

今回は、このオートインクリメント機能を追加してみよう。

まずは、mysqlクライアントを起動しよう。

PS C:\Users\vinta> mysql -u root -p
Enter password: *****

続いて、basicデータベースに移動しよう。

mysql> USE basic;
Database changed

テーブルを新規作成しよう

新規のscheduleテーブルを作成する。以下の通り入力しよう。

mysql> CREATE TABLE schedule
    -> (pid INT AUTO_INCREMENT,uid VARCHAR(7),
    -> subject VARCHAR(100),pdate DATE,ptime TIME,
    -> cid INT,memo TEXT,PRIMARY KEY(pid));

フィールド情報を確認しよう

scheduleテーブルのフィールド情報を確認しよう。以下の通り入力しよう。

SHOW FIELDS FROM schedule;

下記の通り、scheduleテーブルに含まれるフィールド情報の一覧が表示される。

pidフィールドのExtra欄に「auto_increment」が表示されていることを確認しよう。

mysql> SHOW FIELDS FROM schedule;
+---------+--------------+------+-----+---------+----------------+
| Field   | Type         | Null | Key | Default | Extra          |
+---------+--------------+------+-----+---------+----------------+
| pid     | int          | NO   | PRI | NULL    | auto_increment |
| uid     | varchar(7)   | YES  |     | NULL    |                |
| subject | varchar(100) | YES  |     | NULL    |                |
| pdate   | date         | YES  |     | NULL    |                |
| ptime   | time         | YES  |     | NULL    |                |
| cid     | int          | YES  |     | NULL    |                |
| memo    | text         | YES  |     | NULL    |                |
+---------+--------------+------+-----+---------+----------------+
7 rows in set (0.00 sec)

レコードを登録しよう

scheduleテーブルにレコードを追加しよう。以下の通り入力しよう。

mysql> INSERT INTO schedule (uid,subject,pdate,ptime,cid,memo)
    -> VALUES ('yyamada','MOVIEGO会議','2025-03-25','15:00',1,'配布資料持参');
Query OK, 1 row affected (0.01 sec)

以下の通り、「Query OK, 1 row affected」と表示されれば成功である。

mysql> INSERT INTO schedule (uid,subject,pdate,ptime,cid,memo)
    -> VALUES ('yyamada','MOVIEGO会議','2025-03-25','15:00',1,'配布資料持参');
Query OK, 1 row affected (0.01 sec)

続けてレコードを登録しよう

続けて、scheduleテーブルにレコードをもう一つ追加しよう。以下の通り入力しよう。

mysql> INSERT INTO schedule (uid,subject,pdate,ptime,cid,memo)
    -> VALUES ('tsato','A企画書提出','2025-04-15','16:00',3,'サンプル添付');

以下の通り、「Query OK, 1 row affected」と表示されれば成功である。

mysql> INSERT INTO schedule (uid,subject,pdate,ptime,cid,memo)
    -> VALUES ('tsato','A企画書提出','2025-04-15','16:00',3,'サンプル添付');
Query OK, 1 row affected (0.01 sec)

テーブルの内容を参照しよう

scheduleテーブルに保存されたレコードを参照しよう。以下の通り入力しよう。

 SELECT pid,uid,subject,pdate,ptime FROM schedule;

以下の通り、pidフィールドに連番が登録順にセットされていることを確認しよう。

mysql> SELECT pid,uid,subject,pdate,ptime FROM schedule;
+-----+---------+-------------+------------+----------+
| pid | uid     | subject     | pdate      | ptime    |
+-----+---------+-------------+------------+----------+
|   1 | yyamada | MOVIEGO会議 | 2025-03-25 | 15:00:00 |
|   2 | tsato   | A企画書提出 | 2025-04-15 | 16:00:00 |
+-----+---------+-------------+------------+----------+
2 rows in set (0.00 sec)

今回は、ここまでである。mysqlクライアントを終了しよう。

mysql> exit
Bye
PS C:\Users\vinta>

参考)3ステップでしっかり学ぶ MySQL入門 [改訂第3版]  山田奈美(著)山田祥寛(監修)技術評論社

コメント

タイトルとURLをコピーしました