SQLite 插入一行并返回主键

要插入一行数据并返回主键,我们可以使用 INSERT 语句和 last_insert_rowid() 函数。下面是一个示例:

复制代码
INSERT INTO 表名 (列1, 列2, 列3) VALUES (值1, 值2, 值3);
SELECT last_insert_rowid();

SQL

Copy

在示例中,我们使用 INSERT 语句将一行数据插入到指定的表中,并使用 VALUES 子句指定要插入的值。last_insert_rowid() 函数用于返回最后插入的行的主键值。

下面是一个完整的示例,假设我们有一个名为 users 的表,其中包含 id (主键)、nameage 三列:

复制代码
CREATE TABLE users (
    id INTEGER PRIMARY KEY,
    name TEXT NOT NULL,
    age INTEGER
);

INSERT INTO users (name, age) VALUES ('张三', 25);
SELECT last_insert_rowid();

SQL

Copy

在上面的示例中,我们首先创建了一个名为 users 的表,并指定了 id 列为主键。然后,我们使用 INSERT 语句插入一行数据,并指定了 nameage 列的值。最后,我们使用 SELECT 语句和 last_insert_rowid() 函数返回插入的行的主键值。

插入多行数据并返回主键

如果我们要插入多行数据并返回对应的主键,我们可以使用 INSERT 语句和 last_insert_rowid() 函数的组合。下面是一个示例:

复制代码
INSERT INTO 表名 (列1, 列2, 列3)
VALUES (值1, 值2, 值3),
       (值4, 值5, 值6),
       (值7, 值8, 值9);

SELECT
   last_insert_rowid() - (SELECT COUNT(*) - 1 FROM 表名),
   last_insert_rowid()
FROM 表名
LIMIT (SELECT COUNT(*) FROM 表名) - 1, 1;

SQL

Copy

在示例中,我们使用了一个多行 VALUES 子句来同时插入多行数据。然后,我们使用子查询根据已插入的行数计算出每行对应的主键值。

总结

在本文中,我们介绍了如何在 SQLite 数据库中插入一行数据并返回对应的主键。通过使用 INSERT 语句和 last_insert_rowid() 函数

相关推荐
寻星探路36 分钟前
数据库造神计划第九天---增删改查(CRUD)(5)
数据库
Alan521591 小时前
🚀 阿里云 ECS + MySQL 环境搭建全流程(用于个人博客系统开发)
数据库·程序员
Huhbbjs1 小时前
SQL 核心概念与实践总结
开发语言·数据库·sql
wuyunhang1234561 小时前
Redis---集群模式
数据库·redis·缓存
sensenlin911 小时前
Mybatis中SQL全大写或全小写影响执行性能吗
数据库·sql·mybatis
IAtlantiscsdn2 小时前
Redis Stack扩展功能
java·数据库·redis
没有bug.的程序员3 小时前
Redis 大 Key 与热 Key:生产环境的风险与解决方案
java·数据库·redis·缓存·热key·大key
王维志3 小时前
LiteDB详解
数据库·后端·mongodb·sqlite·c#·json·database
2301_815357703 小时前
parameterType和@Param注解的区别
java·开发语言·数据库
零雲3 小时前
除了缓存,我们还可以用redis做什么?
数据库·redis·缓存