2010-02-04 4 views
0

Недавно я добавил промежуточную таблицу для связывания двух таблиц.[Mysql]: Вставка значений в промежуточную таблицу

Таблицы:

Purchase: 
Transaction_Id Purchase_Id 

Schedule: 
Show_Id  Price 

Purchase_Schedule: 
PurchaseId(fk) Show_Id(fk) 

Моя проблема заключается в том, что purhcase_id на auto_increment. Поэтому я не знаю, где взять этот идентификатор.

Я собирался сделать что-то вроде этого ...

INSERT INTO 
    Purchase_Schedule 
     (Purchase_ID, Show_ID) 
    VALUES 
     ((SELECT Purchase_ID FROM Purchase WHERE Transaction_ID=$transactionID),$purchaseID)"; 

Вопрос заключается в том, что TRANSACTION_ID может иметь более одного purchase_ID привязанную к нему ... так что этот метод выходит.

Поэтому я считаю, что наилучшим способом приблизиться к этой ситуации было бы использование какой-либо хранимой процедуры для автоматического обновления Purchase_Schedule.

Должен ли я пойти с хранимой процедурой?
Есть ли способ вставить в Purchase_Schedule @ идентификатор Purchase_ID текущей вставки?
или способ вернуть auto_incremented Purchase_ID?

ответ

1

Если вы используете PHP для вставки данных, вы можете использовать mysql_insert_id для получения значения идентификатора с автоматическим инкрементом для последней вставленной строки.

Вы также можете получить его с помощью SQL:

SELECT LAST_INSERT_ID() 

См the MySQL manual для получения дополнительной информации.

+0

довольно круто ... рад, что я спросил! –