2010-11-28 14 views
0

これは本当に簡単な答えかもしれません。私はしばらくの間、たくさんのデータベースを作ってきました。私は別のテーブルの値に挿入された1つのテーブルからauto_increment値を取得しようとしています。これを行う簡単な方法があります。例えばiに対して行っている:mysql別のauto_incrementの値を取得する

CREATE TABLE table_a (
id int NOT NULL AUTO_INCREMENT, 
a_value varchar(4), 
PRIMARY KEY (id) 
); 

CREATE TABLE table_b (
id int NOT NULL, 
b_value varchar(15), 
FOREIGN KEY (id) REFERENCES table_a (id) 
); 

を今私は、テーブルに値を挿入したいが、私はtable_aとtable_bのための「ID」の値が同じになるようにしたいと思います。

INSERT INTO table_a VALUES (NULL, 'foobar'); 

をしかし、私はtable_bの「ID」の値にtable_aからauto_incermented「ID」番号を抽出して行く方法がわからない。これまでのところ、私は持っています。 SELECT @id = LAST_INSERT_ID()を見たことがありますが、動作させることはできません。

答えて

0

これを一度に行うことはできません。

INSERT INTO table_a (a_value) VALUES ('foobar'); 

をして、生成されたIDを使用して、第2の挿入:あなたは、まず、第1のテーブルに挿入する必要があります

INSERT INTO table_b (id, b_value) VALUES (@@IDENTITY, 'foobar'); 
+0

@identityは機能しませんが、手がかりを与えて答えを見つけることができました。 – freddy6

0

LAST_INSERT_ID()とselect文の一部は必要ありませんが。

関連する問題