You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQLite执行带OUTPUT子句的INSERT语句触发语法错误:OperationalError: near "OUTPUT": syntax error

解决SQLite中INSERT语句使用OUTPUT报错的问题

哦,这个坑我之前也踩过!你写的INSERT INTO pictures OUTPUT Inserted.id DEFAULT VALUES是SQL Server特有的语法,SQLite完全不支持OUTPUT关键字,这就是为啥会抛出syntax error的原因。

在SQLite里,要获取刚插入记录的ID,得用它内置的函数last_insert_rowid(),具体用法分两种场景:

直接在SQL命令行执行

  • 先执行插入语句:
    INSERT INTO pictures DEFAULT VALUES;
    
  • 紧接着执行查询获取ID:
    SELECT last_insert_rowid();
    

在编程代码中使用(以Python为例)

如果你是用代码操作SQLite,大部分语言的SQLite驱动都提供了直接获取插入ID的属性,比如Python的sqlite3模块:

import sqlite3

# 连接数据库
conn = sqlite3.connect('your_database.db')
cursor = conn.cursor()

# 执行插入
cursor.execute("INSERT INTO pictures DEFAULT VALUES;")

# 直接获取刚插入的ID
inserted_id = cursor.lastrowid
print(f"插入的记录ID是:{inserted_id}")

# 提交事务并关闭连接
conn.commit()
conn.close()

简单说,SQLite没有像SQL Server那样的OUTPUT语法,必须通过last_insert_rowid()或者驱动提供的属性来获取插入后的ID。

内容的提问来源于stack exchange,提问作者M7kra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 02:57:50