在我的PHP / MySQL应用程序中,我在查询后运行,以便在表中插入数据:
INSERT INTO `my_table` VALUES ('','$value1','$value2').
第一个值是自动递增的主键。
现在,我想要做的是,在此插入操作之后,我想在另一个表my_table2
中输入一些数据,其中primary key
中my_table
的条目用作{ {1}}。
我应该使用触发器还是有某种方法来获取表的最后一个条目的主键。 请回答所需的代码。
更新: 我忘了指定我正在使用 mysqli ,并希望在数据库端保留此特定处理。
答案 0 :(得分:1)
您可以尝试:
SELECT LAST_INSERT_ID();
答案 1 :(得分:0)
在insert语句之后,您可以触发另一个查询:
SELECT LAST_INSERT_ID();
这将返回一行,其中一列包含id。
文档:http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_last-insert-id
mysql> SELECT LAST_INSERT_ID();
-> 195
这适用于每个连接,因此如果另一个线程写入表中没有问题。您的SELECT需要在插入查询运行后“右后”/“作为下一个查询”执行
一个例子:
$dbConnection = MyMagic::getMeTheDatabase("please");
$oSomeFunkyCode->createThatOneRowInTheDatabase($dbConnection);
$result = $dbConnection->query("SELECT LAST_INSERT_ID();");
// ... fetch that one value and you are good to go