2012-06-01 2 views
2

Это мой первый пост на сайте. Я новичок с mysql и php, поэтому прошу прощения за любые ошибки и любезно указать их. У меня есть таблица для хранения нанимая детали:обновить вторую таблицу с автоинкрементным идентификатором первой таблицы

table_hiring
hiringid INT (20) AUTOINCREMENT => (первичный ключ);
hiringname varchar (80);
hiringdate bigint (20);
... ...

У меня есть еще один стол для хранения инструментов и их цены на прокат, который имеет:

table_tools
tool_id INT (10) AUTOINCREMENT => (первичный ключ);
tool_description varchar (100);
tool_price double;

Каждый запрос на аренду будет сохранен в таблице найма. Моя проблема заключается в том, что каждый запрос на аренду может иметь несколько инструментов (его надельный прокат, поэтому наниматель может запросить набор препятствий, набор выстрелов и комплект копья и т. Д.). Я был в тупике с проблемой хранения нескольких значений в одном поле. Я сделал некоторые исследования и решили иметь другую таблицу

table_tool_hire
tool_hire_id() => (первичный ключ из table_hiring);
tool_id() => (первичный ключ из table_tools);
tool_hire_date bigint (20);

Проблема заключается в том, что каждый раз, когда есть запрос на аренду, в соответствии с запросом hirer мне нужно заполнить table_hiring и table_tool_hire в одном запросе, а идентификатор проката должен совпадать в обеих таблицах.

Как вставить значения в table_hiring и одновременно получить значение автоинкрементного идентификатора этого проката для обновления в таблице table_tool_hire? Пожалуйста, помогите ... Заранее спасибо ...

ответ

1

Для PHP это найдено с mysql_insert_id(). Для .NET, посмотрите this.

+0

Благодарим за быстрый ответ Джереми. Я думаю, что mysql_insert_id() должен решить мою проблему. Будет ли снова опубликован после проверки. Вы просто сделали мою жизнь намного проще ...: D – sujith

+0

работал Как колдовство!!! Функция должна быть вызвана сразу после выполнения запроса, хотя ... Еще раз спасибо! – sujith

0

, пожалуйста, посмотрите на этот форум,

Get all insert ids in a transaction

вы можете использовать переменные хранилища там последний вставки идентификатора,

INSERT INTO messages(`message`) VALUES ('message1'); 
@message1:=last_insert_id(); 
INSERT INTO messages_tags(`message_id`, `tags`) VALUES (LAST_INSERT_ID(), 'tagfoo1'); 
@message2:=last_insert_id(); 

если вы сделаете

select @message1; 

результатом будет 1234, поэтому у вас есть

@message1 => 1234 
@message2 => 1235 
Смежные вопросы