[前][次][番号順一覧][スレッド一覧]

mysql:4267

From: とみたまさひろ <とみたまさひろ <tommy@xxxxxxxxxx>>
Date: Sun, 2 Sep 2001 22:29:57 +0900
Subject: [mysql 04267] あるフィールド毎の通し番号

とみたです。

最近気が付いたこと。

あるフィールドの値毎に通し番号を振りたい場合、たとえば、id1 が「A」〜
「Z」と id2 が「000」〜「999」の場合、

	create table hoge (id1 char(1) not null, id2 int(3) zerofill
	not null, ..., unique (id1, id2));

とかしますよね。で、これだと自分で max() とか使って、新しい番号を振ら
ないといけないと思ってたんですが、id2 に auto_increment をつけると、
ちゃんと id1 毎に独立した番号が id2 に自動採番されるみたいです。

	mysql> insert into hoge (id1) values ('A');
	mysql> insert into hoge (id1) values ('A');
	mysql> insert into hoge (id1) values ('A');
	mysql> insert into hoge (id1) values ('A');
	mysql> insert into hoge (id1) values ('A');
	mysql> insert into hoge (id1) values ('B');
	mysql> insert into hoge (id1) values ('B');
	mysql> insert into hoge (id1) values ('C');
	mysql> select id1,id2 from hoge;
	+-----+-----+
	| id1 | id2 |
	+-----+-----+
	| A   | 001 |
	| A   | 002 |
	| A   | 003 |
	| A   | 004 |
	| A   | 005 |
	| B   | 001 |
	| B   | 002 |
	| C   | 001 |
	+-----+-----+

結構便利かも。みなさん、知ってました?

--
とみたまさひろ <tommy@xxxxxxxxxx>
日本MySQLユーザ会 http://www.mysql.gr.jp

[前][次][番号順一覧][スレッド一覧]