数据库输入副本

时间:2013-02-11 08:06:51

标签: mysql sql database

我会通过输入我想要的内容开始。

所以,我有一个表,每行自动获取一个新的id,对于在那里创建的每个新行,我希望该id也可以放入另一个表中的特定列。

数据库结构:事件

(这是我要复制id的表格)

EventID |更多列

-

数据库结构:jointable (这是我想要将“EventID”复制到的表格)

EventID |更多专栏。

所以,当事件被放入我的表“事件”时,我希望我的EventID也会被自动放入我的连接表中。

1 个答案:

答案 0 :(得分:2)

使用返回上次插入的自动生成ID的函数。

MySql 中,它是LAST_INSERT_ID()
SQL Server 中,它是SCOPE_IDENTITYIDENT_CURRENT@@IDENTITY

例如在MySql中你可以做类似的事情

INSERT INTO event (column1,column2...) VALUES (...); 
SET @last_event_id = LAST_INSERT_ID();
INSERT INTO jointable (EventID, column1, column2...) VALUES (@last_event_id, ...);

<强>更新 要从客户端(php + mysqli)执行此操作,请使用mysqli_insert_id()

在这种情况下,您的代码将类似于

$db = mysqli_connect(...);
...
$query = "INSERT INTO event (column1, column2...) VALUES (...)";
mysql_query($query);

$last_event_id = mysqli_insert_id($db);

$query = "INSERT INTO jointable (EventID, column1, column2...) VALUES ($last_event_id, ...)";
mysql_query($query);