MySQL で複合キーの LAST INSERT ID() を取得できますか?
1617 次
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 に答える