插入后如何立即获取唯一主键ID的值[重复]

Posted

技术标签:

【中文标题】插入后如何立即获取唯一主键ID的值[重复]【英文标题】:How to get the value of unique primary key id immediately after insertion [duplicate] 【发布时间】:2015-09-22 08:03:21 【问题描述】:

我有一个名为“TX_TABLE”的 sqlite 表,主键 ID 名称是 TX_UID。 我在这个表中插入一行,想获取这个唯一 id 列 'TX_UID' 的值。如何获取?

db.insert(VivzHelper.TX_TABLE, null, contentvalues);
String td = new SimpleDateFormat("dd-MM-yyyy").format(new Date());
helper.close();

【问题讨论】:

【参考方案1】:

假设你使用的是androidSQLiteDatabase类,insert()调用直接返回row id:

public long insert (String table, String nullColumnHack, ContentValues 值)

返回新的行ID 插入的行,如果发生错误,则为 -1

【讨论】:

如何获取该行ID的值? long rowID = db.insert(... 谢谢乔普。它帮助了我。新进入者的简单答案。【参考方案2】:

您可以使用函数last_insert_rowid()(点击函数名查看详情)获取最后插入的id。

来自文档:

last_insert_rowid() 函数从调用该函数的数据库连接返回最后一行插入的 ROWID

可以使用下面的sql命令来检索它

SELECT last_insert_rowid()

【讨论】:

以上是关于插入后如何立即获取唯一主键ID的值[重复]的主要内容,如果未能解决你的问题,请参考以下文章

mysql如何避免主键或者唯一索引重复导致的插入失败问题

如何在 MySQL 中获取特定表的主键“列名”

主键约束,外键约束,空值约束,默认值约束,唯一约束,检查约束的各个作用是啥?

获取最后插入行的主键 ID 以运行多个插入操作 [重复]

如何避免没有主键和唯一键的重复条目?

方镁石。插入后如何获取自动增量主键的值,除了last_insert_rowid()?