は、問題はそうはい、MySQLのAUTO_INCREMENTは、GroupWiseのシーケンシャルなIDを作成することができ、 "mysqlの" としてタグ付けされます。
はhttp://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.htmlを参照してください。
のMyISAMと
BDBテーブルの場合は、複数のカラムインデックスで二列にAUTO_INCREMENTを指定することができます。この場合、AUTO_INCREMENT列の生成値は
MAX(auto_increment_column) + 1 WHERE prefix=given-prefix
と計算されます。これは、データを順序付けられたグループに入れたい場合に便利です。
編集:例のPHPスクリプト(PDOを使用して、それがphp-mysqlモジュールと同じゲームです)
$pdo = new PDO('mysql:host=...;dbname=...', '...', '...');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// example table
$pdo->exec(
'CREATE TEMPORARY TABLE Foo (
id int auto_increment,
account int,
someotherstuff varchar(32),
primary key(account,id)
) engine=MyIsam'
);
// insert example data
$stmt = $pdo->prepare('INSERT INTO Foo (account,someotherstuff) VALUES (?,?)');
$stmt->execute(array(1, '1a'));
$stmt->execute(array(1, '1b'));
$stmt->execute(array(1, '1c'));
$stmt->execute(array(2, '2a'));
$stmt->execute(array(2, '2b'));
$stmt->execute(array(1, '1d'));
unset($stmt);
// query data
foreach($pdo->query('SELECT account,id,someotherstuff FROM Foo') as $row) {
echo $row['account'], ' ', $row['id'], ' ', $row['someotherstuff'], "\n";
}
プリント
1 1 1a
1 2 1b
1 3 1c
2 1 2a
2 2 2b
1 4 1d
@tom haigh canあなたはどういう仕組みか説明してください。 – FBP