3

MySQL で複合キーの LAST INSERT ID() を取得できますか?

4

1 に答える 1

7

はい。1つのテーブルに複数の自動インクリメントフィールドを含めることはできません。

CREATE TABLE foo (
  id1 int(11) NOT NULL auto_increment,
  id2 int(11) NOT NULL default '0',
  PRIMARY KEY  (id1, id2)
);

INSERT INTO foo VALUES (DEFAULT, 2);

SELECT LAST_INSERT_ID(); -- returns 1, the value generated for id1

LAST_INSERT_ID()宣言された列の値のみを返しますAUTO_INCREMENT。システムによって生成されなかった複合主キーの値を返す関数はありません。あなたはただINSERT声明でそれを与えたので、あなたはすでにその価値を知っているべきです。トリッキーなケースは、トリガーなどが値をオーバーライドする場合です。

于 2008-12-16T19:33:29.443 に答える