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

php - 从 'last_insert_id()' 获取值,php 函数

我从“last_insert_id()”获取值时遇到问题。我想将相同的 id 号插入到表“memo”的 id 中。但是,问题是在 foreach 之后,last_insert_id() 获得了一个新值,所以,我尝试创建一个变量并从 'last_insert_id()' 中获取一个值,但它没有用..

}

0 投票
1 回答
65 浏览

php - BEFORE UPDATE 触发器会影响 mysqli_insert_id 结果吗?

我有一个 mysql 表,它附加了一个触发器,将这个表中的更改记录到第二个表中

现在,如果我从 PHP 执行 INSERT INTO table1mysqli_insert_id()之后会调用。

这会返回 table1 中的新 ID 吗?还是 log_table 中的新 ID?

0 投票
2 回答
122 浏览

php - Php Pdo - 选择最后插入的

我在一个查询中有一个“插入”和“选择”查询。

但我不能选择最后插入的行。它必须像这样返回
m_id  KayitZaman       
16      1413130807000

我怎样才能在一个查询中做到这一点?或者其他方式。

0 投票
1 回答
1519 浏览

mysql - MySQL INSERT 和 SELECT LAST_INSERT_ID() 在一行中

我想知道是否有办法改变这个说法

成单行。诸如此类的东西

(可以有效地写在一行中)

是否会尝试该WHEN ( INSERT INTO ...)语句,它会返回一个我们可以检查的值吗?

INSERT即使它在CASE语句中,它也会执行吗?

0 投票
2 回答
593 浏览

php - PDO 事务最后在 table1 中插入了要在 table2 中使用的 id

我有一个表格,我将数据发布到两个不同的数据库表。你可以在下面看到我的交易。

但是,在我的表“任务”中,我有另一列“client_id”,我想在其中绑定一个值。这里的值应该与我的客户表上自动递增的 id 值相同。

因此,我需要以某种方式从表一中获取最后一个插入 id,并在表二中使用该值。我已经评价了我失败的尝试,但没有成功,并返回 NULL

谁能给我一些关于如何管理这个的指示?

0 投票
1 回答
2460 浏览

mysql - 在 MySQL 的 TRIGGER 中更改 LAST_INSERT_ID()

我有一个BEFORE INSERT TRIGGER用于计算AUTO_INCREMENT列(id_2)的值。

我有 PRIMARY(id_1, id_2) 并且我正在使用 InnoDB。之前,该表使用 MyISAM,我没有遇到任何问题:id_2设置为AUTO_INCREMENT,因此每个新条目都会自行id_1生成新条目。id_2现在,在切换到 InnoDB 之后,我有这个触发器来做同样的事情:

它工作得很好,除了现在LAST_INSERT_ID()有错误的值(它返回 0)。很多代码取决于LAST_INSERT_ID()是否正确。但是,从 MySQL 5.0.12 开始,对 TRIGGERS 所做的任何更改LAST_INSERT_ID都不会影响全局值。有没有办法绕过这个?我可以通过调用轻松设置AFTER UPDATE TRIGGER更改,但是任何客户端都将设置为 0。LAST_INSERT_IDLAST_INSERT_ID(NEW.id_2)LAST_INSERT_ID

是否有任何可行的解决方法来强制 MySQL 保持LAST_INSERT_ID触发器内部更改的状态?除了切换回支持开箱即用的 MyISAM 或SELECT max(id_2) FROM tbl WHERE id_1 = :id作为事务的一部分运行另一个以确保找到的行将是较早插入的行之外,还有其他选择吗?

例子:

第一条语句会将行1 | 4 | 'd'插入到表中。第二条语句将返回0,但我需要它返回4

根据Ravinder Reddy的要求,添加有关系统的简短说明:

我有一个包含篮子tbl的表,还有另一个包含项目的表 ( ) 。篮子由应用程序创建,并从篮子表中分配一个ID AUTO_INCREMENT。任务是将具有 id = ,的篮子中的项目插入到 中,并在该篮子的范围内为它们分配一个唯一的 ID。每个项目都有一些与之相关的,可能在同一个篮子中重复。所以在实践中,我试图将所有条目存储在一个篮子中,然后能够通过它们的-对来引用(和检索)这些单独的条目。id_1tbldatadataid_1id_2

0 投票
2 回答
437 浏览

sql - cakephp 保存不工作 2.X

我正在使用CakePHP 2.3,我想按如下方式保存数据:

上面的代码不起作用。我尝试了另一种方法,例如:

我现在如何获取最后插入的 id?我曾经getLastInsertId()获取最后插入的 id,如下所示:

但这似乎不起作用。

0 投票
2 回答
2554 浏览

php - SQL插入行并将插入的自动增量ID复制到另一列

我正在使用 PHP 和 MySQL。

目标:

将新行插入具有自动递增 id 列的表中。
在插入此新行时,我想将新插入行的自动增量 ID # 复制到同一行/条目中的另一列中。
创建后,新条目/行应具有自动递增的 id 列和具有相同编号的另一列。

我最大的担忧:
我需要所有这些都正确可靠地发生,即使来自其他连接的其他事务可能正在服务器上发生。

至今

我对 last_insert_id() 只知道一点点......而且我害怕能够可靠地使用它来满足我的需要......
我是否会遇到自动增量 id # 已经增加的情况(由于可能来自另一个连接的其他一些插入查询)现在我不会得到正确的 id #? (我并没有完全理解将 last_insert_id() 以每个连接为基础提供给客户端的含义)。

last_insert_id() 是否会很好地处理事务,因为当事务回滚时它们变得未定义?(如果回滚另一个事务,然后我立即运行此脚本,我的脚本是否会为 last_insert_id() 返回 NULL?)

我不明白 mysql_insert_id(); 如何使用它以及它是否对我有帮助。

到目前为止,我想过:

  1. 插入行,column设置为 last_insert_id();
  2. 插入行;使用 SELECT last_insert_id column() 更新;
  3. 选择 last_insert_id(); 插入行auto-increment columncolumn设置为 last_insert_id()+1

当我将选定的值插入自动增量列时会发生什么?自动增量生成器会从我插入的数字开始计数吗?如果我使用以前使用过的值(但不再存在)并且存在 ID # 在该值之后的记录怎么办?

表或行锁定是否允许我实现我想要的行为?

做这样的事情的正确/正确方法是什么?



“last_insert_id() 在每个连接的基础上提供给客户端”

last_insert_id 与客户端无关,将返回来自该客户端的最后插入行的 ID,因此您无需担心另一个连接上的用户与数据库进行事务处理的情况。

我还是没完全明白那是什么意思……

对于基本场景:

这里会发生什么?


还有一个真正让我担心的场景:

在这种情况下,人员 A 的 last_insert_id() 落后了一个计数。如果这是真的,那么我将无法使用我的#3 方法。


无论我可能错在哪里,请为我纠正我的输出。

0 投票
1 回答
420 浏览

php - 如何避免将表单发送的数据关联到具有自动增量唯一 ID 的 MySQL 数据库中的可能冲突?

我实际上对 PHP 和 jQuery 了解不多。我是一名自学成才的程序员,最近我专注于使用 PHP 为服务器端和 JavaScript 为客户端进行 Web 编程。

AJAX 对我来说是一个相对较新的概念,我只是在做第一次测试。

我会解释我的问题,当然是我想要的,这对许多人来说应该是微不足道的。

我有一个相当长的表单,它有复选框、文本输入、文本区域和选择,此外,我想将引导文件输入插件添加到我的表单中。

问题是我想把所有的数据一起发,发数据前后的照片不能发,也不能发数据再发照片。

这样做的原因是我的数据库是关系型的,需要把数据和图片关联到同一个ID,必须是自己生成的,是一个自增字段。

想象一下,我有一个名为 data 的表和另一个名为 data_ref_pictures 的表,在我的表单中只有这些字段名称、性别和年龄:

我很担心,因为我认为我的系统是单用户/单用户 :-(

假设有 100 个用户在不同的地方,他们同时都在使用表单,假设现在表单已经填写并且照片也被选中(还没有发送任何内容),表单准备好发送,并且所有 100 个用户同时按下提交按钮。

怎样才能知道数据的id号,以免系统出错,把用户的数据和图片混在一起。

问题是我不知道将用户发送的所有数据和图片与唯一的自动增量 ID 相关联。

谢谢阅读!

0 投票
2 回答
13211 浏览

mysql - 如何检索最后添加的项目的实例

我正在使用带有 mysql 后端的 github.com/jinzhu/gorm。我想在上一个 Create 调用中检索行的 Id(或完整实体)。

如,last-insert-id:(http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_last-insert-id

我怎样才能做到这一点?