问题标签 [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 回答
783 浏览

java - Java 上次插入 ID 不起作用

可能重复:
如何在 JDBC 中获取插入 ID?

我试图获取最后一个插入 ID,但显然它不起作用,它不断给我一堆错误,其中一个是这个

我试图得到最后一个插入它但它不起作用,这是我的代码

第二个是

我怎样才能得到最后插入的 id?我的方法有什么问题?

0 投票
2 回答
257 浏览

.net - 如何在 WebMatrix 中使用 LAST_INSERT_ID()

我无法弄清楚如何LAST_INSERT_ID()在 WebMatrix 中使用 MySQL 数据库。有人可以告诉我如何将它应用于下面的代码片段吗?

0 投票
6 回答
6401 浏览

java - 从mysql获取最后一条记录

我正在使用 mysql 并面临一些问题。我想检索插入的最后一行。

<<以下是详细内容>>

以下是我创建表格的方式。

create table maxID (myID varchar(4))

我在其中插入了四个值,如下所示

当我执行select myID, last_insert_id() as NewID from maxID时,我得到如下输出

当我尝试下面的代码时,

select myId, last_insert_id() as NewID, @rowid:=@rowid+1 as myrow from maxID, (SELECT @rowid:=0) as init

我得到如下输出。

但是,当我使用代码时select myId, last_insert_id() as NewID, @rowid:=@rowid+1 as myrow from maxID, (SELECT @rowid:=0) as init where @rowid = 4,我收到错误Uknown column 'myrow' in where clause

当我使用 时where @rowid=4,我没有在表格中获得任何数据。

链接以玩数据

注意:这里我使用 4 只是为了获得所需的输出。稍后我可以从查询中得到这个(select max(rowid) from maxID)

如果我只想查看最后一条记录,请建议我需要做什么A003

谢谢你的时间。

更新:

我的表中已经有数百万条数据,因此我无法按照下面的建议在其中添加新列。

0 投票
2 回答
4426 浏览

php - 为什么 PDO 的 Oracle 驱动程序不实现 lastInsertId()?

我在 PDO 中收到此错误:

错误:消息:PDO::lastInsertId() [pdo.lastinsertid]: SQLSTATE[IM001]: Driver does not support this function: driver does not support lastInsertId()

当试图从 oracle 数据库中获取最后插入的 id 时。我将序列字符串添加到最后一个插入 id 函数但仍然无法正常工作。对于带有 PDO 的 Oracle 上的这个错误,谷歌并没有多说。

0 投票
2 回答
99 浏览

php - 如何将已在 MySQL 中设置的变量返回给 PHP

我有一个 PHP 函数,它将多条记录插入 MySQL:

我正在尝试使用第一个 INSERT 语句的 LAST_INSERT_ID (@asset) 作为我下一个函数的变量。为了设置变量,我调用上述函数的方式是:

我很确定我的问题出在我的 SQL 语句中的“return $asset_ID”附近。仅使用 1 个 LAST_INSERT_ID 调用时,我已经能够成功地做到这一点。

根本没有任何东西被退回。

0 投票
3 回答
11099 浏览

php - 为什么我无法在 PHP 和 MySQL 中获取最后一个插入 ID?

我有一个创建课程的功能。我正在尝试获取最后插入 ID,但它不起作用:

这是检索我在与函数 createCourse 相同的类中创建的最后一个插入 ID 的函数:

这就是我调用函数的方式:

"$id"总是"int(0)"

我也试过:

我也试过:

但这也行不通。大家能看出是什么问题吗?:( 函数 createCourse 本身很好。它创建了我需要的内容,并且它在数据库中,但我无法获得最后一个插入 ID。

0 投票
1 回答
2224 浏览

c# - C# mysql 一返回 last_insert_id

我正在尝试创建一种方法,可以在其中执行 mysql UPDATE、DELETE 或 INSERT 查询。该方法必须在使用我询问或不询问的 INSERT 时起作用last_insert_id()。以下是我目前拥有的代码:

这样做的问题是,当我使用返回 a 的插入查询时,last_insert_id()该方法效果很好。但是当查询不返回时last_insert_id(),方法就会出现故障。我怎样才能让这个方法起作用?

0 投票
1 回答
1256 浏览

sql - sqlite 中的 last_insert_rowid - 两个表

我有两张桌子,其中一张是另一张的助手。表“reviews”有一列是一个整数,引用表“films”中该评论的电影的id。有没有办法在“电影”表中插入新电影后,使用“评论”表中的 last_insert_rowid?

我正在使用 SQLITE;我见过 max(id) 的用法,但它可能不那么可靠。帮助将不胜感激。

0 投票
2 回答
28102 浏览

mysql - 使用Mysql对链接表做多次INSERT

我有两张表,一张链接到另一张的主键。在我插入表 A 的那一刻,获取 LAST_INSERT_ID,然后插入表 B。

但是我有数百条记录要插入,我想加快速度。

在 Mysql 中,您可以:

等,或

INSERT INTO table_a (v1, v2, v3) VALUE (0, 1, 2), (4, 5, 6), etc更快地添加多个条目 - 但仅限于一张桌子。

当然后者要快得多。我想知道是否可以在我的示例中使用存储过程复制此行为,并使用两个链接表,以及它是否会在性能上有类似的显着改进:

类似:调用 special_insert((0, 1, 2), (4, 5, 6), etc); 或类似的。

我没有存储过程的经验,所以我正在寻找有关前进方向的想法。

0 投票
3 回答
5807 浏览

mysql - LAST_INSERT_ID() 始终返回 0 (RMySQL) - 单独的连接问题

在一些帖子中找到的原始示例

根据这篇文章,以下 SQL 语句 1, 2, 2, 2, 2最后应该给我一个向量:

遵循NBJeff AllenQuassnoi的建议

对示例进行了修改,使其比原始用例更类似于真实用例:

好吧,它没有,真的;-)

我用谷歌搜索了一下,AFAIULAST_INSERT_ID()是“连接感知”的,因为如果要正常工作,必须使用相同的连接。但是,我认为通过将连接对象分配给con我可以确保在上面的每个语句中确实使用了相同的连接。

好吧,显然不是 ;-) 任何人都可以帮助我提供一些解释和/或解决方法吗?但是,使用类似的东西select max(<ID>) from <TABLE>不会减少它,因为我正在运行同时写入数据库的多个线程,因此如果这样做会弄乱 ID 检索。

谢谢!

截至 2012 年 4 月 20 日的调查结果

  • 多亏了Quassnoi,我才能够更多地找到问题所在。似乎RMySQL函数并不真正关心显式conn参数,而是每次连接到数据库时都会在后台打开新连接。可能也有一些很好的理由。然而,有谁知道如何避免这种情况?
  • 刚刚联系了 Jeffrey Horner(RMySQL包的维护者)。似乎这是一个Windows问题。在 Linux 上为他工作:-/

连接细节

正如杰夫所建议的那样