2表:
1。 BOOKS_IN
2。 BOOKS_IN_DETAIL
BOOKS_in_ID是主键,我需要BOOKS_in_ID自动插入BOOKS_IN_DETAIL。 在这里,是否可以使用单个查询将记录插入到2个表中?
谢谢你的建议。
答案 0 :(得分:1)
您仍然需要两个INSERT
语句,但听起来您希望从第一个插入中获取IDENTITY
并在第二个插入中使用它,在这种情况下,您可能需要查看{ {1}}或OUTPUT
:http://msdn.microsoft.com/en-us/library/ms177564.aspx
Src和可能的副本:SQL Server: Is it possible to insert into two tables at the same time?
您也可以将OUTPUT INTO
用于PDO。
一个小例子:
LastInsertId()
Src:http://php.net/manual/en/pdo.lastinsertid.php
或者获取mysqli中的最后一个插入ID:
$sql = "INSERT INTO city (`city`) VALUES ('Paris') ON DUPLICATE KEY UPDATE `city` = 'Paris";
$dbh->query($sql);
echo $dbh->lastInsertId();
答案 1 :(得分:1)
您需要调用适当的方法来获取最后插入的ID。
假设您使用PDO
,则需要调用方法lastInsertId。 $books_in_id = $pdo->lastInsertId();
如果您使用mysqli_*
$books_in_id = $mysqli->insert_id;
扩展名
编辑:如果您使用mysql_*
版本(已弃用),请先升级到mysqli_ *,或签入documentation
答案 2 :(得分:0)
你必须坚持使用mysql吗?因为如果你可以使用mysqli,你可以使用multi_query(),它允许你一次执行多个查询 链接:http://php.net/manual/en/mysqli.quickstart.multiple-statement.php
答案 3 :(得分:0)
不,只有一个INSERT
查询无法实现。
您可以按照以下步骤操作
对于第一点,您可以使用LAST_INSERT_ID()
功能添加外接键