1

我在 mySQL 中有 2 个具有一对一关系的表。它们都具有与主键相同的 user_id,当我将帖子插入到我的第一个表中时,我需要以某种方式自动将具有相同 user_id 的行插入到我的第二个表中。是否有任何我可以使用的 mysql 命令或 PHP 脚本?

4

2 回答 2

2

TRIGGER您可以在数据库中设置一个。这些触发器实体存储在数据库的结构中,使用 PHP 您可能只执行CREATE TRIGGER创建一个的查询。

但是,两个表具有完全相同的数据,PRIMARY KEY听起来像您的数据库结构有点糟糕。您应该花时间改造数据库,基本上将两个表合并(如果可能)在一起。

如果您INSERT INTO对数据库使用 PHP,则可以依次调用这两个查询:

INSERT INTO table1(field1, field2...) VALUES (value1, value2...)
INSERT INTO table2(field1, field2...) VALUES (value1, value2...)

但是依赖于两个彼此之后的查询需要精确的准确性,因为主键可能会不同步,从而破坏关系。

于 2012-08-07T11:18:31.813 回答
1

如果我正确理解您的问题,您可以从第一个表中获取插入的 user_id 并使用它在第二个表中插入新行。

$query = mysql_query("SELECT * FROM first_table ORDER BY user_id DESC LIMIT 1");
$row = mysql_fetch_assoc($query);

现在 $row['user_id'] 可以插入到第二个表中。

如果同时插入许多行,这当然是有风险的。

于 2012-08-07T11:23:47.773 回答