问题标签 [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 投票
1 回答
1617 浏览

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?

0 投票
5 回答
63989 浏览

c# - 使用 C# 获取插入行的 id

我有一个查询要在表中插入一行,该表有一个名为 ID 的字段,该字段使用列上的 AUTO_INCREMENT 填充。我需要为下一个功能获取这个值,但是当我运行以下命令时,即使实际值不是 0,它也总是返回 0:

根据我的理解,这应该返回 ID 列,但它每次只返回 0。有任何想法吗?

编辑:

当我运行时:

我得到:

0 投票
14 回答
394608 浏览

mysql - LAST_INSERT_ID() MySQL

我有一个 MySQL 问题,我认为这一定很容易。当我运行以下 MySql 查询时,我需要从 table1 返回 LAST INSERTED ID:

正如您所理解的,当前代码只会返回 table2 的 LAST INSERT ID 而不是 table1,即使我在 table2 之间插入,我如何才能从 table1 获取 id?

0 投票
1 回答
552 浏览

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 使事情变得复杂。

例如

期望的输出:

0 投票
2 回答
6417 浏览

php - 如何使用 mysqli 准备语句获取 insert_id

如何使用 mysqli prepare 语句获取最后一条记录的 insert_id,例如以下?

0 投票
1 回答
2078 浏览

mysql - PDO 获取多个插入 ID

使用 PDO 运行以下查询(实际上,我使用准备好的语句但同样的问题)

INSERT INTO MyTable(MyField) VALUES('Row1'), ('Row2')

如何获取与Row1和相关的记录的 ID Row2

$db->lastInsertId()从字面上返回最后一个 Id。

取最后一个 ID,减去记录数并假设范围涵盖我的所有记录就足够了吗?是否有间隙/跳跃。这个查询是否保证是原子的?

0 投票
2 回答
21938 浏览

php - PHP Postgres:获取最后插入 ID

我发现了关于这个主题的其他几个问题。这个...

mysql_insert_id 替代 postgresql

...并且手册似乎表明您可以随时致电lastval(),它会按预期工作。但是这个...

Postgresql 和 PHP:currval 是在多用户应用程序中检索最后一行插入 id 的有效方法吗?

...似乎表明它必须在交易中。lastval()所以我的问题是:在查询(没有交易)之前,我可以等多久就等多久?面对许多并发连接,这是否可靠?

0 投票
4 回答
3150 浏览

magento - Magento 在事务中间最后插入 id

我在 Magento 中使用交易。我需要对所有后续查询使用第一个插入查询的primeryKey。

如何在保存交易之前获取最后插入的 id

0 投票
1 回答
899 浏览

mysql - Powershell 中的 last_insert_id

在 Powershell 中,我有一个简单的 Mysql 插入命令。

我正在使用 Mysql Connector Net 6.2.4。

是否可以退回last_insert_id()或类似的东西?

我在这里寻找一些信息,但实际上找不到任何东西。

有什么想法吗?

0 投票
1 回答
4349 浏览

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-日志

是否有任何系统变量控制这种行为?如果有人知道那将是欢迎的。如果没有解决方案,我唯一能做的就是像这样强制插入以更新一些具有不同值的字段......