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() 函数

相关推荐
SelectDB19 小时前
阶跃星辰基于 SelectDB 构建 PB 级 Agent 可观测平台
大数据·数据库·aigc
这个DBA有点耶20 小时前
GROUP BY优化全解:如何写出既不丢数据又飞快的分组查询
数据库·mysql·架构
掉头发的王富贵1 天前
【StarRocks】极限十分钟入门StarRocks
数据库·sql·mysql
Nturmoils1 天前
WHERE 条件别凭习惯写,常用查询先跑一遍
数据库
Databend2 天前
在 AWS 中国峰会逛了一天,我在 Databend 展台看到了 Agent 数据基础设施的新思路
数据库·人工智能·agent
ClouGence3 天前
Oracle 数据同步为什么会出现数据不一致?长事务是常被忽略的原因
数据库·后端·oracle
飞将3 天前
从零实现数据库(2)——HashIndex + IndexManager
数据库
Nturmoils4 天前
订单列表慢查询,先看 WHERE、ORDER BY 和 LIMIT
数据库
渣波4 天前
拒绝 SQL 焦虑!手把手带你用 NestJS + Prisma + DTO 写出“防弹”级后端代码
javascript·数据库·后端
倔强的石头_5 天前
KingbaseES 新版MySQL 兼容版体验:旧版迁移 + 功能实测
数据库