mySQL - 如何在数据库表中获取最后一个条目的主键

时间:2013-10-19 07:47:35

标签: mysql sql

在我的PHP / MySQL应用程序中,我在查询后运行,以便在表中插入数据:

INSERT INTO `my_table` VALUES ('','$value1','$value2').

第一个值是自动递增的主键。

现在,我想要做的是,在此插入操作之后,我想在另一个表my_table2中输入一些数据,其中primary keymy_table的条目用作{ {1}}。

我应该使用触发器还是有某种方法来获取表的最后一个条目的主键。 请回答所需的代码。

更新: 我忘了指定我正在使用 mysqli ,并希望在数据库端保留此特定处理。

2 个答案:

答案 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