问题标签 [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.
php - 替代“PDO::lastInsertId”/“mysql_insert_id”
我总是听说使用“lastInsertId”(如果您不使用 PDO,则使用 mysql_insert_id())是邪恶的。如果是触发器,显然是这样,因为它可能会返回完全不是您的 INSERT 创建的最后一个 ID 的东西。
有什么选择?
sql-server-ce - 使用类型化 DataSet 和 DataGridView 的最后插入记录 ID 问题
我正在为一个简单的数据库应用程序使用以下内容:
- SQL Server Compact Edition .sdf 文件作为数据库,具有 int 主键 ID。
- 类型化 DataSet 和 BindingSource 作为数据访问层
- DataGridView 用于显示数据。
我的问题是,最后插入的记录/行 ID 有问题。当我使用导航器组件的追加按钮向 datagridview 添加一行时,新记录/行的 ID 为-1。即使使用 TableAdapter.Update() 将数据保存到数据库后,它仍然是 -1。我知道我可以使用带有 @@identity 或 scope_identity() 的单独查询来获取最后一个 ID,但是您只需要手动使用另一个查询来更新您的数据听起来并不正确。我在这里错过了什么吗?在保存到数据库并获取刚刚插入的记录的 ID 后,是否有自动更新数据的方法?
另外,我在数据集设计器->表适配器配置->高级窗口中看到了“刷新数据表”选项,但由于某种原因它被禁用了。但是不知道有没有关系。。
我会很感激这方面的任何帮助..
mysql - 什么可能导致自动增量主键字段(mysql)上的重复 ID?
解决
来自开发人员:问题是以前版本的代码仍在写入使用手动 ID 而不是自动增量的表。自我注意:始终检查表写入的其他可能位置。
我们在表中得到重复的键。它们不是同时插入的(相隔 6 小时)。
表结构:
插入:
我们使用 PHP5 运行 MySQL 5.0.20,并使用 mysql_insert_id() 在插入查询后立即检索插入 ID。
php - 检索mysql中最后更新的列
我有一个如下的 MySQL 查询(使用 Zend_Db):
(排名不是自动递增的 PK)。我现在想在rank
不执行另一个查询的情况下检索 的值。我已经尝试过$handle->lastInsertId();
,但它似乎不起作用,因为我没有使用 MySQL 的自然自动递增方法(我不能 -rank
是帖子的排名。我要么 ++ 要么 - 它。)
有什么方法可以通过执行另一个查询来做到这一点?将返回最后更改的值的函数?
sql - 用于检索插入的最后一行的通用 SQL 构造
插入最后一行(或者它是主键)的正确通用 SQL 构造是什么。ID 可能由序列自动生成,但我根本不想处理序列!我需要通过查询表来获取 ID。或者,INSERT 可能会以某种方式扩展以返回 ID。假设我总是插入一行。该解决方案应该适用于大多数 RDBMS!
java - 带有两个 sql 插入的事务
我有两个 sql insert 要做(例如表 A 和 B 中的示例),它们在事务中,因为我希望数据库保持一致,即 A 中的元组必须在 B 中有引用。
在第二个插入中,我需要来自第一个的 id,但是在我对事务进行提交之前我不会得到这个 id。
所以我被困住了。我不想从事务中取出第一个插入,可能会发生第一个插入正常但第二个不正常的情况,从而使我在数据库中处于不一致的状态。
在这种情况下,最佳做法是什么?
编辑:这是代码:
我想指出的是,在我提交事务之前我没有得到aId,因此将 null 插入到 B 中。
php - 如何在 MySQL 中获取先前操作中 id(primary key) 的值
我正在使用 MySQL。我需要先在表中插入一行,然后我需要获取插入行的 id。代码如下所示:
第 1 列
是个
首要的关键
它是自动递增的。那么如何获取值
第 1 列
在之前的操作中?
php - 我如何处理 mysql 表中的并发插入并获取正确的插入 ID
我正在为 PHP 库使用 adodb。
为了获取插入记录的 id,我使用这个函数
p>我想知道数据库表中是否有多个同时插入,此方法是否会为插入的每条记录返回正确的插入 ID?
我问这个的原因是因为我使用最后一个插入 ID 来进一步处理其他记录并在相关表中创建后续条目。
这种方法是否足够安全,或者我错过了什么。
请帮助我为此制定适当的工作计划,以便我可以使用最后一个插入 ID 安全地进一步插入另一个表,而不必弄乱现有数据。
谢谢
php - 使用 Kohana 3,如何从 Database 类中获取最后一个插入 ID?
我已经通过了模块/数据库/类/中的一些代码,但仍然没有找到如何返回最后一个插入 ID。
我怎么得到这个?
sql - 如何在 MySQL 中将一对一关系更改为一对多关系?
我目前有一个用户表,其中包含 Youtube OAuth 令牌的一对一关系。但是,我现在想支持多个视频站点,并希望将其分解为一对多的关系。
我已经设置了新表:
令牌 - cols:id、站点、用户名(用户在 Youtube 上的用户名)、oauth_token、oauth_secret
user_tokens - 列:id、user_id、token_id
有没有办法可以从我当前用户的表中选择这些表来导入用户名、oauth_token 和 oauth_secret 列,同时还可以使用适当的 id 设置 user_tokens 表?
过去我曾编写过简短的 PHP 脚本来执行此操作,但一直很好奇我是否可以直接在 MySQL 中执行此操作。