No Name Sex
1 A M
2 B F
3 C F
4 D M
mysqlデータベースでテーブルの自動番号を取得したい。では、どうやってそれを行うのですか?
主キーと自動インクリメントでテーブルを作成しました
http://dev.mysql.com/doc/refman/5.0/en///example-auto-increment.html
以下のコードを参照してください。
CREATE TABLE Persons
(
id int NOT NULL AUTO_INCREMENT,
name varchar(50) NOT NULL,
sex char(1),
PRIMARY KEY (id)
)
その方法はいろいろありますが、
1 つの手法は、テーブルを変更することです。
AUTO_INCREMENT
もう1つは、セッション変数を使用することです
SELECT @rank := @rank+1 As `No`,
Name,
Sex
FROM table1, (SELECT @rank := 0) r
自動番号付けは、自動的にインクリメントしたい数値列にauto_increment属性を指定することによって行われます。テーブルを作成するときに「id」列で指定し、各 id で行を一意に識別することをお勧めします (主キーとも呼ばれます)。
CREATE TABLE people (
id MEDIUMINT NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
sex ENUM('m', 'f'),
PRIMARY KEY (id)
) ENGINE=MyISAM;
または、テーブルが存在する後に ID (自動インクリメント) を追加することもできます。
それを自動的に行うテーブルを作成したい場合は、大まかに次のように使用できます...
create table mytable (
`No` serial,
/* other fields... */);
http://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html
SERIAL is an alias for BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE
ただし、行を削除すると、行番号にギャップが生じます。auto_increment フィールドをリセットしたい場合は、
alter table mytable
auto_increment = 1;