问题标签 [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.
mysql - mysql中插入查询的问题
我有以下查询:
我收到重复的主键值 =1 错误(应该由 last_insert_id() 生成)。这是表的结构
有人可以帮我为什么 last_insert_id() 总是返回 1。
更多信息:表 A、B 和 C 中的 id 字段是 auto_increamented。
mysql - 是否可以从不同的数据库中获取 LAST_INSERT_ID() ?
假设我们有 2 个数据库:a
和b
、 和 表a.test1
和b.test2
。
如果我需要在 table 中插入一行a.test1
,然后返回LAST_INSERT_ID()
insert into b.test2
,是否会LAST_INSERT_ID()
从另一个数据库返回值?它可靠吗?
我在手册中没有找到任何内容,但@@IDENTITY
取决于客户端会话,因此它应该可以在两个数据库之间移植。不是吗?
mysql - mysql 服务器和客户端协议中的“受影响的行”和“last_insert_id”是做什么用的?
在查看 mysql 服务器和客户端协议时,我在 Ok_Packet 中找到了“受影响的行”和“last-insert-id”两列。
我知道 Ok_packet 是由服务器发送给客户端的,作为客户端发送的命令的响应。对客户来说似乎没用。
来自mysql-doc
我想知道它们到底是用来做什么的?
对此的任何想法将不胜感激。
php - 从最后插入的行获取最后插入 id
我又来了,我快疯了!我有这个存储过程:
我怎样才能得到最后一个插入ID???我尝试了所有,没有参数或在表上使用 max(id) 进行选择或“设置 last_id = last_insert_id()”,但我不知道如何通过 php 获取它?
当我在 phpmyadmin 中调用该过程时,我得到了类似的东西
而在 php 中,我显然在数组中得到了相同的结果。
我做错了什么?
mysql - 在插入之前清除 LAST_INSERT_ID() 以判断返回的内容是否来自我的插入
LAST_INSERT_ID()
返回由自动增量列为当前连接生成的最新 id,但是我如何判断该值是否来自最后一个插入,而不是来自同一连接上的前一个插入?
假设我正在使用来自池的连接,它可能在我获得连接之前插入了一行,然后我执行了条件插入:
我无法知道返回的值是否来自我的插入。
我想到的一种方法是:
有没有办法“清除”该LAST_INSERT_ID()
值,所以如果返回非零值,我知道这是由我的 SQL 引起的新值?
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 = ?
如果它是合法的?
基本上我想在一个查询中执行 INSERT或SELECT。
php - lastInsertId() 是否获取该脚本或整体插入的最后一个 id?
我想知道究竟是如何lastInsertId()
工作的。Atm,我正在使用它来获取插入行的 id,这样我就可以在代码的其他部分使用这个 id。例如:
好的,我的问题是:
1)该脚本是否获取lastInsertId
在该特定脚本中完成的 SQL 插入?
2)会发生什么,例如,3 个不同的用户将数据插入同一个表中,只是相差几纳秒。像这样的东西:
在这种情况下,返回值 1 是因为它是该脚本插入的行的最后一个 id,还是返回 3,因为这是脚本到达执行函数lastInsertId()
的行时的最后一个 id ?lastInsertId()
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()
吗?
这是我的代码:
mysql - 如何最有效地获取多个 last_insert_ids
我有一个这样的 SQL INSERT 语句:
我意识到这LAST_INSERT_ID()
只会AUTO_INCREMENT
从列表中获取第一个插入的 id。会有更多的清单。有没有一种更有效的方法来获取每个查询last_insert_ids
而不重复(使用 PHP 循环结构)INSERT
查询,如下所示:
我想INSERT
根据这些个人在另一张桌子上做其他陈述last_insert_ids
。
php - PDO 最后插入 id 返回 0
我面临最后一个插入 ID 的问题,这是我的表结构
这里我将最后一个插入 ID 设置为会话,并为他的所有事务使用用户 ID。在我的本地测试中,我正确地获取了最后一个插入 ID。一切都很完美。但是,当我将代码上传到服务器时,有时会话未设置或最后一个插入 ID 为 0。我不明白如何在实时服务器中复制该问题。
使用 last insertid 或任何其他替代方法来获取新用户 ID 是正确的方法吗?
我看到在某些情况下使用
需要这个代码吗?
请帮我调试一下情况。提前致谢
//编辑