主キーとなりうるフィールドが存在しない場合は、新たに一意となるようなフィールドを追加すればよい、新たに主キーとして予定コードを追加する方法もあるが、ひとつひとのレコードに予定コードを設定するのも面倒である。
このような場合、自動的に連番を振ってくれるのが、オートインクリメント機能である。
今回は、このオートインクリメント機能を追加してみよう。
まずは、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版] 山田奈美(著)山田祥寛(監修)技術評論社
コメント