我们可以在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