如何为具有FK关系的表创建插入脚本

时间:2012-11-08 07:55:33

标签: mysql

create table foo(id, val1)
create table foo_bars(id, foo_id, val2)
在上述情况下,

id是自动生成的。

我想做以下

insert into foo (val1) values (1)
insert into foo_bars (foo_id, val2) values (?, 2)

如果我不知道foo_id的值,如何获取foo_id的值。我是否还需要对这些ID进行硬编码。有优雅的方式吗?

2 个答案:

答案 0 :(得分:1)

是的,有一种优雅的方法可以确定最后插入的ID。检查this for MySQLthis for MySQLi

从他们的例子中可以看出:

$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
$mysqli->query($query);

printf ("New Record has id %d.\n", $mysqli->insert_id);

答案 1 :(得分:1)

根据mysql网站(http://dev.mysql.com/doc/refman/5.0/en/getting-unique-id.html

试试这个(如果你想使用纯MySQL):

INSERT INTO foo (val1) 
    VALUES(1);         
INSERT INTO foo_bars (foo_id, val2)
    VALUES(LAST_INSERT_ID(),2);  # use ID in second table