1

在我的 PHP/MySQL 应用程序中,我有以下查询来在表中插入数据:

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

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

现在,我想做的是,在这个插入操作之后,我想在另一个表中输入一些数据,其中my_table2条目primary key的.my_tableforeign key

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

我正在使用mysqli,并希望将这个特定的处理保留在数据库端。

4

3 回答 3

1

你可以试试:

 SELECT LAST_INSERT_ID();
于 2013-10-19T07:53:56.883 回答
0

在插入语句之后,您可以触发另一个查询:

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 需要执行 'RIGHT AFTER'/'As the next query'

一个例子:

$dbConnection = MyMagic::getMeTheDatabase("please");
$oSomeFunkyCode->createThatOneRowInTheDatabase($dbConnection);

$result = $dbConnection->query("SELECT LAST_INSERT_ID();");
// ... fetch that one value and you are good to go
于 2013-10-19T07:54:12.423 回答
-1

如果您希望它专门用于表,您可以使用以下查询:

SELECT AUTO_INCREMENT -1 as CurrentId FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'YOURDATABASE' AND TABLE_NAME = 'YOURTABLE'
于 2021-11-17T17:10:34.503 回答