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

php - 使用事务时是否可靠 PDO lastInsertId()

我使用 PDO 事务

此脚本需要多个并发请求。

问题:是否有可能lastInsertId()为实际插入行的用户返回不正确的值?

(“不正确的值”是指:由其他用户插入的 id)。

0 投票
2 回答
311 浏览

mysql - MySQL INSERT ... 从 1 个表中选择 2 个表

我看到很多关于从多个表中插入单个表的问题。我试图做相反的事情,并且只使用 MySQL

我有一个包含非规范化数据的临时表。我需要

  1. 遍历临时表的每一行
  2. 使用临时表中的一些字段在主表上创建一个新行
  3. 使用刚刚创建的主表行的自动增量 ID 在辅助表上创建一个新行,将其LAST_INSERT_ID()放入 primary_id 字段。

我了解整体LAST_INSERT_ID(),我很高兴运行一个事务:我只是不知道如何创建循环通过临时表然后运行 ​​2 个后续插入的“外部选择循环”。

0 投票
1 回答
424 浏览

php - 如何获取 Codeigniter 中模型之间事务中关系的最后一个 ID?

我在用户控制器的一个函数中有这个代码。我正在使用 Codeigniter。

它用于通过表单处理注册。(验证通过 form-validation 库完成)-

  • 具有用户名的用户,name_user 存储在用户表中
  • 公司存储在公司表中
  • 公司和用户之间的关系存储在 userprofile-table 中

我认为代码是不言自明的,但我不清楚如何在 userprofile-model 中插入关系。我确实需要最后插入的用户 ID 和最后插入的公司 ID,但在我的代码中我没有,因为在调用之前我实际上并没有插入任何用户或公司$upm->getSQLInsert();

还是我做错了?请给我任何指示...

0 投票
1 回答
489 浏览

python-3.x - 如何根据rowid删除数据

使用 python,我如何根据 lastrowid 删除数据。我的代码删除了所有行代码:

0 投票
1 回答
194 浏览

mysql - MySQL - 带有更新和插入的过程中最后一次选择的输出

我有一个执行以下语句的存储过程:

  1. 填充变量的选择
  2. 利用所述变量的更新
  3. 另一个选择填充第二个变量
  4. 使用第二个变量的插入
  5. 选择 last_insert_id() 将 4 的插入 ID 吐出给调用应用程序。

SP 返回第一个变量,因为它是第一个选择。

有什么办法可以检索最后一个插入ID吗?

我知道我可以在应用程序的光标上使用最后一个插入 ID,但这会破坏我正在使用的模型。我想我可以作为最后的手段这样做,但我正在寻找其他选择。

0 投票
2 回答
80 浏览

php - 如何获取最新的自动递增 id 数组?

一个查询插入多行:

我想要的是 :

自动递增 id 的数组。

我正在使用什么SELECT LAST_INSERT_ID()

我只得到一个 id。我应该怎么做才能得到最后插入字段的所有自动递增值的数组。

PS:我不能触发多个插入查询。

0 投票
1 回答
640 浏览

mysql - UPDATE + CASE WHEN + EXISTS + SELECT MAX 的 MySQL 语法

编辑:现在工作,这篇文章底部的解决方案。

我已经尝试创建这个查询几个小时了,但没有成功:

现在,重点是更新tasks表的列Order,其中ID等于某些值(此处为 LAST_INSERT_ID())。

user_job_tasks如果在where中存在任何记录jobIDtaskID匹配值,我想设置为where中找到的Order最大值 + 1匹配值。Orderuser_job_tasksjobID

如果不是,Order将设置为 1。

我只是得到一个错误General error: 1093 You can't specify target table 'tasks' for update in FROM clause。我在查询语法中找不到任何错误。

抱歉解释混乱,也许我应该去睡觉。


工作解决方案:

0 投票
1 回答
850 浏览

mysql - MySQL - 返回最后插入的 ID 组

所以有很多关于LAST_INSERT_ID()的问题和答案。如果您要插入单行并需要该 ID 的返回值来处理事情,这很好用,但是如果您正在执行组插入并需要所有 AUTO_INCREMENT ID 的返回值怎么办?

拿这张表:

我需要将 的值插入Name 1到表中,然后将其primary key插入 Data1、2 和 3 中的值到其他具有主键约束的表中。

问题是“名称”不是唯一的,所以我无法查询原始/临时表并以这种方式获取值。

根据文档,last_insert_id()在单个 INSERT 语句的上下文中运行。反正我测试过了。

在此处输入图像描述

我还尝试将值写回表中,但当然 SQL 对集合进行操作:

给我: 在此处输入图像描述

任何帮助将不胜感激。

0 投票
0 回答
283 浏览

php - MySQL :: insert_id 为 SELECT 查询返回非零值

我刚刚花了 4 个小时来跟踪我的脚本中的一个错误。我一直收到以下错误:

Call to a member function fetch_assoc on a non object

当我做类似的事情时,这是被抛出的:

我的database -> query方法看起来像:(对象在$database -> mysqli哪里mysqli

现在,这将返回插入行的插入自动增量 ID,否则返回查询结果。我刚刚发现,如果我运行一个插入查询然后是一个选择查询,第二个查询将返回预先运行的插入查询的插入 ID。这真的是预期的行为,还是我在这里遗漏了什么?

0 投票
1 回答
2001 浏览

php - 如何从laravel 4获取最后一个插入ID

我正在使用 laravel 4。我有一个名为文档的表。我正在使用 Document::insert() 函数在 Document 表中插入数据。我的代码如下

现在我想获取插入 ID。但是 $users 变量只给了我一个名为 true 的布尔变量。如何获取插入 ID。