1

我有 3 个结构像这样的表,

员工 > id (PK), 姓名

family > family_id (PK), id (员工PK)

父亲>father_id(PK)、family_id(家庭PK)、father_name

mysql_insert_id()我知道我可以使用or获取最后插入LAST_INSERT_ID的 ID,我想获取 ID 并将其插入到每个表中,如下所示:

INSERT INTO employee VALUES('', '<value>')
//
//
INSERT INTO family VALUES('', '".mysql_insert_id()."')
// id from employee PK
//
INSERT INTO father VALUES('', '".mysql_insert_id()"', '')
// id from family PK

我在做正确的事吗?如果是的话,有没有更好的方法来做同样的事情?

谢谢你。:)

4

1 回答 1

0

是的,这是正确的方法(考虑到有关 mysql_fns 的警告)。但是您在第二个和第三个示例中引用了一个整数值 - 这是一个坏主意。

这种方法的缺点是,即使没有服务器端解析准备好的语句(发送查询、检索结果、发送插入 id 请求、检索插入 id X 3),它也需要多次往返数据库,这可能是性能瓶颈。

如果是这种情况,则将其打包为 Mysql 函数允许该操作作为对 DBMS 的单个调用进行竞争(使用函数而不是过程,因为前者可以返回插入 id)。

于 2013-10-30T11:56:36.213 回答