[Mysql]: вставка значений в промежуточную таблицу - PullRequest
0 голосов
/ 04 февраля 2010

Я недавно добавил промежуточную таблицу, чтобы связать две таблицы.

Таблица:

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 Ответ

1 голос
/ 04 февраля 2010

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

Вы также можете получить его через SQL:

SELECT LAST_INSERT_ID()

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

...