【问题标题】:Multiple mysql_insert_id多个 mysql_insert_id
【发布时间】:2013-10-30 11:44:01
【问题描述】:

我有 3 个这样结构的表,

员工 > id (PK), 姓名

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

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

我知道我可以使用 mysql_insert_id()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

我做对了吗?如果是,有没有更好的方法来做同样的事情?

谢谢。 :)

【问题讨论】:

标签: php mysql mysql-insert-id


【解决方案1】:

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

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

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

【讨论】:

  • 所以我需要在插入之前使用settype()将值转换为字符串?
  • 否 - 表上的数据类型应该是整数 - 如果它是 char/varchar 等,那么您将遇到严重的性能问题,并且可能存在数据完整性问题。
猜你喜欢
  • 2010-12-13
  • 2011-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-08
  • 2012-01-04
  • 2013-12-01
  • 1970-01-01
相关资源
最近更新 更多