2013-04-18 5 views
0

В настоящее время я работаю над базой данных, которая хранит утверждения в 2 таблицах и имеет другую таблицу, связывающую утверждения вместе. Первые две таблицы автоматически увеличивают первичный идентификатор на каждой записи, однако мне нужно знать новые идентификаторы, которые были введены, чтобы ввести его в таблицу, которая их связывает.SQL insert auto increment value

Table 1 
SID  | Statement   | Language 
1 | Have a cup of coffee  | English 
2 | Have a cup of green tea  | English 

Table 2 
AID | Action 
1 | recycle the cup 
2 | feel full of cafine 
3 | throw away the cup 
4 | feel healthy 
5 | jump 

Table 3 - relationships 

SID | AID 
1 | 1 
1 | 2 
1 | 3 
2 | 1 
2 | 3 
2 | 4 

так пример был бы:

INSERT INTO actions(Action) VALUES ('Go to the pub'); 
INSERT INTO statements(statement, Language) VALUES ('Have a pint', 'English'); 

отношения будут тогда, зная значения автоматического приращения для этого примера будет 3 и 6:

INSERT INTO Relationships(SID,AID) VALUES (3,6); 

Мне нужна значения 3 и 6 необходимо вводить в качестве переменных, например:

INSERT INTO Relationships(SID,AID) VALUES (id1, id2); 

ответ

0

Попробуйте это

INSERT INTO actions(Action) VALUES ('Go to the pub'); 
SET @aid = LAST_INSERT_ID(); 

INSERT INTO statements(statement, Language) VALUES ('Have a pint', 'English'); 
SET @sid = LAST_INSERT_ID(); 

INSERT INTO Relationships(SID,AID) VALUES (@sid,@aid); 
+0

благодарит за ответ! Однако, когда я запускаю этот код, я получаю: Код ошибки: 1064. У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с 'declare v_aid integer, v_sid integer' в строке 1 – Jon8672

+0

@ Jon8672, я отредактировал свой код, попробую обновленную версию –

+0

Спасибо большое, что сработало отлично! – Jon8672