问题标签 [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 SELECT LAST_INSERT_ID() for compound key. Is it possible?
Can I get the LAST INSERT ID() for a compound key in MySQL?
c# - 使用 C# 获取插入行的 id
我有一个查询要在表中插入一行,该表有一个名为 ID 的字段,该字段使用列上的 AUTO_INCREMENT 填充。我需要为下一个功能获取这个值,但是当我运行以下命令时,即使实际值不是 0,它也总是返回 0:
根据我的理解,这应该返回 ID 列,但它每次只返回 0。有任何想法吗?
编辑:
当我运行时:
我得到:
mysql - LAST_INSERT_ID() MySQL
我有一个 MySQL 问题,我认为这一定很容易。当我运行以下 MySql 查询时,我需要从 table1 返回 LAST INSERTED ID:
正如您所理解的,当前代码只会返回 table2 的 LAST INSERT ID 而不是 table1,即使我在 table2 之间插入,我如何才能从 table1 获取 id?
mysql - MySQL:将一个文件中的数据插入到两张表中,一张带有 auto_increment id,一张连接表
我有 500M+ 记录的数据,在一个有 2 个字段的文件中,blob
并且c_id
.
还有两个其他文件具有其他格式的相同数据: 一个具有 90M 唯一 blob 的文件。带有 blob 的文件,以及每条记录的 c_id 的逗号分隔列表。
我有两张桌子:
对于每个唯一的 blob,必须在 table_a 中创建一条记录。对于文件中的每条记录,必须使用 table_a 的适当外键创建 table_b 中的记录。
我现在使用的解决方案是生成插入语句,使用last_insert_id
,但是太慢了。我更喜欢使用 LOAD DATA INFILE,但自动增量 ID 使事情变得复杂。
例如
期望的输出:
php - 如何使用 mysqli 准备语句获取 insert_id
如何使用 mysqli prepare 语句获取最后一条记录的 insert_id,例如以下?
mysql - PDO 获取多个插入 ID
使用 PDO 运行以下查询(实际上,我使用准备好的语句但同样的问题)
INSERT INTO MyTable(MyField) VALUES('Row1'), ('Row2')
如何获取与Row1
和相关的记录的 ID Row2
?
$db->lastInsertId()
从字面上返回最后一个 Id。
取最后一个 ID,减去记录数并假设范围涵盖我的所有记录就足够了吗?是否有间隙/跳跃。这个查询是否保证是原子的?
php - PHP Postgres:获取最后插入 ID
我发现了关于这个主题的其他几个问题。这个...
...并且手册似乎表明您可以随时致电lastval()
,它会按预期工作。但是这个...
Postgresql 和 PHP:currval 是在多用户应用程序中检索最后一行插入 id 的有效方法吗?
...似乎表明它必须在交易中。lastval()
所以我的问题是:在查询(没有交易)之前,我可以等多久就等多久?面对许多并发连接,这是否可靠?
magento - Magento 在事务中间最后插入 id
我在 Magento 中使用交易。我需要对所有后续查询使用第一个插入查询的primeryKey。
如何在保存交易之前获取最后插入的 id
mysql - Powershell 中的 last_insert_id
在 Powershell 中,我有一个简单的 Mysql 插入命令。
我正在使用 Mysql Connector Net 6.2.4。
是否可以退回last_insert_id()
或类似的东西?
我在这里寻找一些信息,但实际上找不到任何东西。
有什么想法吗?
php - mysql_insert_id 和 last_insert_id 错误行为
我有这张桌子
a_b 是唯一键。
我有这样的php代码
通过运行此代码两次,在我的电脑上结果是第一次
第二
您可以看到,两次 mysql_insert_id() 返回相同的值“1”,这对我来说很好,因为我想知道插入后的真实 id,而不是下一个 auto_increment 值。
但是当我在另一个环境中运行此代码两次时:第一次
第二
如您所见,第二次的结果 mysql_insert_id() 返回与 last_insert_id() 相同的值。
这个结果很可怕,但我不知道为什么。我的代码在这两种环境下都运行了大约 3 个月,直到今天才发生这种情况。有人可以解释吗?我确实在大约 30 天前将第二个环境的 PHP 版本升级到了 5.3.8,没有其他变化。这是一个错误吗?
更新
我切换到第三个mysql服务器(5.1.38-log),第二个insert return int(0) array(1) { ["last_insert_id()"]=> string(1) "0" }
所以我意识到问题可能与mysql版本有关。
最后,我将表定义更改为这个
还编辑我的脚本
不同的mysql服务器返回相同的mysql_insert_id但不同的last_insert_id()
5.0.24a-社区-nt
5.0.51a-日志
5.1.38-日志
是否有任何系统变量控制这种行为?如果有人知道那将是欢迎的。如果没有解决方案,我唯一能做的就是像这样强制插入以更新一些具有不同值的字段......