Недавно я добавил промежуточную таблицу для связывания двух таблиц.
Таблицы:
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?
Если вы используете PHP для вставки данных, вы можете использовать mysql_insert_id для получения значения идентификатора с автоинкрементом для последняя строка вставлена.
Вы также можете получить его через SQL:
SELECT LAST_INSERT_ID()
Подробнее см. руководство пользователя.