使用第一个表的自动增量ID更新第二个表

时间:2012-06-01 13:26:12

标签: php mysql

这是我在网站上的第一篇文章。我是mysql和php的新手所以请原谅任何错误并善意地指出它们。 我有一张表来存储招聘细节:

table_hiring
hiringid int(20)AUTOINCREMENT => (主键);
招聘名称varchar(80);
聘请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);

问题在于每次有租用请求时,根据租用人的请求,我需要在一个查询中填充table_hiring和table_tool_hire,并且雇佣ID需要在两个表中匹配。

如何将值插入table_hiring并同时将该租用的自动增量id值更新到table_tool_hire表中?请帮忙...提前致谢...

2 个答案:

答案 0 :(得分:1)

对于PHP,可以使用mysql_insert_id()找到它。 对于.NET,请查看this

答案 1 :(得分:0)

请看一下这个论坛,

Get all insert ids in a transaction

你可以在那里使用变量存储最后一个插入ID,

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