问题标签 [last-insert-id]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
29 浏览

mysql - mysql中插入查询的问题

我有以下查询:

我收到重复的主键值 =1 错误(应该由 last_insert_id() 生成)。这是表的结构

有人可以帮我为什么 last_insert_id() 总是返回 1。

更多信息:表 A、B 和 C 中的 id 字段是 auto_increamented。

0 投票
2 回答
701 浏览

mysql - 是否可以从不同的数据库中获取 LAST_INSERT_ID() ?

假设我们有 2 个数据库:ab、 和 表a.test1b.test2

如果我需要在 table 中插入一行a.test1,然后返回LAST_INSERT_ID()insert into b.test2,是否会LAST_INSERT_ID()从另一个数据库返回值?它可靠吗?

我在手册中没有找到任何内容,但@@IDENTITY取决于客户端会话,因此它应该可以在两个数据库之间移植。不是吗?

0 投票
1 回答
648 浏览

mysql - mysql 服务器和客户端协议中的“受影响的行”和“last_insert_id”是做什么用的?

在查看 mysql 服务器和客户端协议时,我在 Ok_Packet 中找到了“受影响的行”“last-insert-id”两列。
我知道 Ok_packet 是由服务器发送给客户端的,作为客户端发送的命令的响应。对客户来说似乎没用。 在此处输入图像描述来自mysql-doc

我想知道它们到底是用来做什么的?

对此的任何想法将不胜感激。

0 投票
3 回答
1672 浏览

php - 从最后插入的行获取最后插入 id

我又来了,我快疯了!我有这个存储过程:

我怎样才能得到最后一个插入ID???我尝试了所有,没有参数或在表上使用 max(id) 进行选择或“设置 last_id = last_insert_id()”,但我不知道如何通过 php 获取它?

当我在 phpmyadmin 中调用该过程时,我得到了类似的东西

而在 php 中,我显然在数组中得到了相同的结果。

我做错了什么?

0 投票
5 回答
4728 浏览

mysql - 在插入之前清除 LAST_INSERT_ID() 以判断返回的内容是否来自我的插入

LAST_INSERT_ID()返回由自动增量列为当前连接生成的最新 id,但是我如何判断该值是否来自最后一个插入,而不是来自同一连接上的前一个插入?

假设我正在使用来自池的连接,它可能在我获得连接之前插入了一行,然后我执行了条件插入:

我无法知道返回的值是否来自我的插入。

我想到的一种方法是:

有没有办法“清除”该LAST_INSERT_ID()值,所以如果返回非零值,我知道这是由我的 SQL 引起的新值?

0 投票
1 回答
591 浏览

mysql - MySQL INSERT 与 ON DUPLICATE SELECT 可能吗?

Prefix 和 fqdn 共同构成一个唯一键。

如果电子邮件地址尚未在表中,我想编写一个插入查询。如果地址已经在表中,它应该返回 id。

有没有办法编写一个查询,INSERT INTO email_address(prefix, fqdn) VALUES (?, ?) ON DUPLICATE SELECT id as LAST_INSERT_ID WHERE prefix = ? AND fqdn = ?如果它是合法的?

基本上我想在一个查询中执行 INSERTSELECT。

0 投票
1 回答
781 浏览

php - lastInsertId() 是否获取该脚本或整体插入的最后一个 id?

我想知道究竟是如何lastInsertId()工作的。Atm,我正在使用它来获取插入行的 id,这样我就可以在代码的其他部分使用这个 id。例如:

好的,我的问题是:

1)该脚本是否获取lastInsertId在该特定脚本中完成的 SQL 插入?

2)会发生什么,例如,3 个不同的用户将数据插入同一个表中,只是相差几纳秒。像这样的东西:

在这种情况下,返回值 1 是因为它是该脚本插入的行的最后一个 id,还是返回 3,因为这是脚本到达执行函数lastInsertId()的行时的最后一个 id ?lastInsertId()

0 投票
1 回答
245 浏览

php - 如何在使用 PHP-PDO 记录查询时获取最后一个插入 ID

最近我一直在创建一个函数来记录数据库中的每一个变化,我只是将它记录到一个表中。

表backup_log:backupTableName、backupLastUpdate、backupLastupload

因此,每次更改时,都会将日期记录到“backup_log”中。它运行良好,但是当我需要 Last Insert Id 时遇到问题,我使用 $orderid =$dbh->lastInsertId('orderId');来获取“last insert Id”,但它返回“0”。我发现当我放置querylog()运行另一个查询的函数而该query()函数仍在运行时,问题就出现了。因为它使用相同的 PDO 对象。那么,有什么建议让我能够在运行时获得“最后插入 id”querylog()吗?

这是我的代码:

0 投票
1 回答
39 浏览

mysql - 如何最有效地获取多个 last_insert_ids

我有一个这样的 SQL INSERT 语句:

我意识到这LAST_INSERT_ID()只会AUTO_INCREMENT从列表中获取第一个插入的 id。会有更多的清单。有没有一种更有效的方法来获取每个查询last_insert_ids而不重复(使用 PHP 循环结构)INSERT查询,如下所示:

我想INSERT根据这些个人在另一张桌子上做其他陈述last_insert_ids

0 投票
1 回答
415 浏览

php - PDO 最后插入 id 返回 0

我面临最后一个插入 ID 的问题,这是我的表结构

这里我将最后一个插入 ID 设置为会话,并为他的所有事务使用用户 ID。在我的本地测试中,我正确地获取了最后一个插入 ID。一切都很完美。但是,当我将代码上传到服务器时,有时会话未设置或最后一个插入 ID 为 0。我不明白如何在实时服务器中复制该问题。

使用 last insertid 或任何其他替代方法来获取新用户 ID 是正确的方法吗?

我看到在某些情况下使用

需要这个代码吗?

请帮我调试一下情况。提前致谢

//编辑