问题标签 [lastinsertid]
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 - 我们什么时候给 LAST_INSERT_ID() 一个参数?
从这里引用:
以上的用例是什么(有什么好处)?
我之前从未使用过带有任何参数的 LAST_INSERT_ID ...
更新
我的问题是,当它通过自动递增的主键自动开箱即用时,为什么要以这种方式模拟这种序列?
php - MySQL + PHP:获取多个/复合主键的last_id
我需要获取具有多列主键的表的最后插入 id。
- 这些表没有 AUTOCOUNT 列。
- 我正在使用参数化查询(任意顺序)
- 使用 PHP (5.3) 和 MySQLi 模块
- 任意 INSERT SQL 查询。(任何格式)
例如:
结果: $last_id = $mysqli->insert_id ?: getInsertedId() ;
此时我有一个名为 getPK() 的函数,它返回给我:
我现在需要的是实现getInsertedId()。在不使用 SQL 解析器的情况下,这可能是最简单的方法?
我很确定这个问题已经有了答案,但我找不到任何东西......
更新
我问这个问题的原因是因为我有一个类可以控制与 MySQL 数据库相关的所有内容(个人框架的一部分)。我有一种称为set()的方法,其中传递了查询(如 UPDATE、INSERT、DELETE 等)。我还有其他特定的方法,例如insert(),其中传递了数组。
我有一个存储last_inserted_id 的变量。以后可以随时调用该变量。我在具有多个主键的不同系统中有许多表。使用insert()方法时,设置 last_inserted_id 值没有问题,但是当某些系统使用set()方法时,我无法检索该值,我必须返回 0。我想更改该行为。
我想用上面的例子来简化我的解释。
更新 2
并非所有系统都由我自己控制。例如,其中一个系统调用soap 方法,在该方法中发送查询以执行(任何类型的查询)。这些由set()方法处理。然后还有其他soap方法可以检索最后一个id。为了保持一致性,我想返回该值。
insert - Sybase JDBC 获取生成的密钥
在 Postgres 中,我可以写
检索插入期间生成的所有值。在 Oracle、HSQLDB 中,我可以使用
检索已生成的所有值。MySQL 有点受限,只返回设置为AUTO_INCREMENT
. 但是,如何使用 Sybase SQL Anywhere 做到这一点?JDBC 驱动程序没有实现这些方法,并且没有INSERT .. RETURNING
子句,就像在 Postgres 中一样。有没有办法做到这一点,除了可能运行
插入后立即?
c# - SQLite在连接关闭后获取最后一行ID
我有两个功能。
一 插入数据库。它打开连接并在插入后关闭它。其他是GetLastID 函数。
我知道我可以查询最大的 ID,但有人告诉我这是一种不好的做法。
“选择 sqlite_last_insert_rowid();” 似乎没有用,因为我在插入后关闭了连接。
mongodb - 如何在 mongoDB 中获取最后 50 个文档?
如何在 mongoDB 中获取最后 50 个文档?
我有一个收藏品,由
从这个“集合”
我想要最后 50 个文档而不是前 50 个文档。
我知道我可以通过使用获得前 50 个文档
但是我怎样才能得到最后 50 个文件呢?
这可以简单地使用 MongoDB API 来完成,还是我应该通过编程来实现?
python - 将元组的元素插入数据库
我有一个元组,我想存储它的元素,我试图将它插入如下,它给出了以下错误,我做错了什么?records_to_be_inserted 是具有 8 个元素的元组。
Traceback(最近一次通话最后一次):文件“/home/tayfun/workspace/personal_guide/modules/mainwindow.py”,第 57 行,在 save_records 照片、地址、注释、日期)VALUES(?,?,?,?,? , ?, ?, ?)", self.records_to_be_inserTed) sqlite3.ProgrammingError: 提供的绑定数量不正确。当前语句使用 8,提供了 0。
mysql - 使用“之前”触发器插入后的 MySQL PDO LastInsertID 返回错误值
我有一个带有 ID (auto_inc)、名称、...和 customer_code 字段的客户表。该表还有一个“before”触发器,从另一个表中选择一个客户代码,并在向该表中插入新记录之前设置customer_code字段。完美运行。
问题是当我检索 lastInsertID() 它总是返回 1 !
我正在使用 PDO 和 PHP。
谢谢你的帮助!
php - mysql_last_id() 的竞争条件
我花了一天的大部分时间试图找到答案,但似乎没有答案。我需要在表中创建一行,从插入的行中检索自动增量,然后使用该值在第二个表中插入另一行的函数。功能类似于以下 php:
我遇到的问题是,在我的应用程序中,所有类之间共享一个 MySQL 连接,所以我担心这可能会导致竞争条件,其中另一个类在运行第一行和第二行之间插入一行上面提到的。
我能想到的最简单的解决方案是让任何使用mysql_insert_id()
打开一个新的、唯一的连接的函数,但这似乎是一个巨大的不必要的开销。我玩过的其他答案包括插入一个唯一值(可能使用创建UUID()
)并使用它而不是自动增量值,或者可能将第一个插入和调用LAST_INSERT_ID()
放入存储的函数中(尽管我不确定是否可以解决可能的竞争条件)。
我也一直在研究事务,看看它们是否有帮助,但几乎没有关于如何mysql_insert_id()
与它们进行交互的文档。我能说的最好的,他们可能不会在这里提供帮助,因为另一个INSERT
与任何事务锁不冲突的锁仍然能够执行并可能导致相同的竞争条件。
因此,假设我对上述任何一项都没有错误(如果我错了,请纠正我),确保 100% 第二个INSERT
使用正确值的最佳方法是什么?
orm - Kohana 3 ORM检索最后一个插入ID
->save() 调用后有没有办法获取最后一个插入 ID?
示例代码:
php - 如何在 SQLite 中获取最后一个插入 ID?
SQLite 中是否有任何内置函数可用于获取最后插入的行 ID。例如:- 在 mysql 中,我们有LAST_INSERT_ID()
这种函数。对于 sqllite 任何可用于执行相同过程的函数。
请帮我。
谢谢