我们可以在sqlite3中自动增加字符串吗



我们可以在sqlite3中自动增加字符串吗?如果没有,我们怎么能做到呢?示例:RY001RY002。。。使用Python,我可以用print("RY"+str(rowid+1((轻松地完成它。但表演怎么样?谢谢

如果你的SQLite版本是3.31.0+,你可以有一个生成的列,存储的或虚拟的:

CREATE TABLE tablename(
id INTEGER PRIMARY KEY AUTOINCREMENT,
str_id TEXT GENERATED ALWAYS AS (printf('RY%03d', id)),
<other columns>
);

id被声明为表的主键,而AUTOINCREMENT确保不会重用任何丢失的id值(因为删除(
插入每一新行后,都会生成列str_id,因为'RY'和左侧的连接会填充0的值id
实际上,str_id将是VIRTUAL,这意味着每次查询表时都会创建它
如果将STORED添加到其定义中:

str_id TEXT GENERATED ALWAYS AS (printf('RY%03d', id)) STORED

它将被存储在表中。

类似这样的东西:

select
printf("RY%03d", rowid) as "id"
, *
from myTable

最新更新