2012-05-01 13 views

答えて

0

"INT"型の "id"という名前の列を追加し、たとえば「phpmyadmin」で「プライマリキー」と「自動インクリメント」に設定します。

この方法では、1から始まりテーブル内の新しいレコードごとにカウントする一意のフィールドを持つことになり、その値を他のテーブルで参照できます。

+0

[OK]を、申し訳ありません多分私は私の自己を明確にしていない、私はすでにこれを持っています。私がしたいのは、そのテーブルにレコードを挿入することです。レコードのいくつかは既に存在していて、タグにはタグが含まれています。存在するレコードを挿入しようとすると、別のテーブルの参照のために既存のレコードIDを使用する必要があります。これがより明確であることを願って、返信のおかげで。 –

+0

レコードがすでに存在するかどうかを確認するための最初のSELECTクエリを実行していない場合、必要に応じてINSERTクエリを実行するのはなぜですか? – adrien

+0

挿入が問題ではない、それはうまく挿入私は既存の一意のフィールドのIDをつかむ必要があります。 –

0

使用INSERT ... ON DUPLICATE KEY UPDATE

テーブルはAUTO_INCREMENT列とINSERT ... ON DUPLICATE KEY UPDATEインサートを含有するか、行を更新する場合、LAST_INSERT_ID()関数はAUTO_INCREMENT値を返します。例外:アップデートの場合、LAST_INSERT_ID()はMySQL 5.1.12より前のバージョンでは意味がありません。ただし、LAST_INSERT_ID(expr)を使用して回避することができます。 idAUTO_INCREMENT列であるとします。 、更新のためのLAST_INSERT_ID()が有意義なものに次のように行を挿入するには:

INSERT INTO table (a,b,c) VALUES (1,2,3) 
    ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id), c=3; 
関連する問題