在mysql中,当它是自动递增时,如何获取用于插入操作的主键。
基本上,我希望在语句完成时返回新的自动增量值。
谢谢!
您的澄清评论说,您有兴趣确保在发生另一个并发INSERT时LAST_INSERT_ID()不会给出错误的结果。请放心,无论其他并行活动如何,使用LAST_INSERT_ID()都是安全的。LAST_INSERT_ID()仅返回当前会话期间生成的最新ID。
您可以自己尝试:
如果您考虑一下,这是唯一有意义的方法。所有支持自动递增密钥机制的数据库都必须采用这种方式。如果结果取决于与其他客户端可能同时插入的竞争条件,那么将没有可靠的方法来获取当前会话中最后插入的ID值。
问题内容: 我正在使用Python 在mysql中运行查询 运行查询后,我想知道该行的主键。我知道有查询 但是我不确定它是否可以与插入忽略一起使用 做这个的最好方式是什么? 问题答案: 文档的说: 如果使用INSERT IGNORE并且忽略该行,则AUTO_INCREMENT计数器不会增加,并且LAST_INSERT_ID()返回0,这表明没有插入行。 知道了这一点,您可以将其分为多个步骤: 插入
我在MySQL中有下表。 表1(身份证、名字、姓氏、电话号码) 表2(TID、电子邮件) 我在 Table1 中有 25000 行,而我的 Table2 包含 20000 行。我在表 2 中的 TID 是引用表 1 的主键 ID 的外键。如果姓氏为 NULL,则 Table2 中将不存在这些 ID。现在,我正在尝试仅针对具有姓氏的表合并这两个表。 我重新定义了表2的模式,如下所示。 Table2(
问题内容: 是否有一种跨数据库平台的方法来获取刚刚插入的记录的主键? 我注意到,这个答案表明您可以通过调用来获得它,而且我认为您可以调用jdbc中的数据库来实现此目的吗? 如果不是,您如何建议我为可以访问SQL Server,MySQL和Oracle中的任何代码的代码实现此功能? 问题答案: 从我的代码复制: 其中pInsertOid是准备好的语句。 然后您可以获取密钥: 希望这为您提供一个良好的
问题内容: 我创建了一个具有主键的表并启用了该表,如何使用MYSQL ? 这是我使用的查询,我尝试使用“”和“ 1”作为第一个值,但是它不起作用。 问题答案: 为了利用列的自动递增功能,在插入行时不要为该列提供值。数据库将为您提供一个值。
本文向大家介绍Mybatis返回插入的主键问题解决方案,包括了Mybatis返回插入的主键问题解决方案的使用技巧和注意事项,需要的朋友参考一下 MyBatis添加记录后获取主键ID,这是一个很常见的需求。这个需求有分为两种情况:(1)添加单条记录时获取主键值;(2)获取批量添加记录时各记录的主键值。 备注:MyBatis从3.3.1版本开始支持批量添加记录并返回各记录主键字段值。 1、添加单一记录
问题内容: 我基本上是想找出使用SqlClient名称空间在C#.NET中执行基本插入操作的最简单方法。 我正在使用我的数据库链接,已经成功执行了一些读取,并且我想知道插入数据的最简单方法。我在Google上发现了似乎很冗长的方法。 问题答案: