Sqlite 的 非关键字自增 实现方法
第一种 不太行
先说结论,在Sqlite中数据自增只能在具有唯一关键字后面标识,
没有办法做到使用自增字段实现非关键字自增
第二种 不太行
通过sqlite的表达式实现
CREATE TABLE t1(
a INTEGER PRIMARY KEY AUTOINCREMENT,
b INT,
c TEXT AS (a) STORED
)
AS ()代表的是可以在()中放入一些计算,计算的结果就是这个字段的值,这里标识的就是c字段的值就是主键a的值
STORED代表的是在插入的时候计算,也可以使用VIRTUAL字段,这个字段代表的是在读取的时候计算
最后实现
我查了好多文档,好像确实没有提到非主键自增的方法,那Sql不提供,只能我们自己操作
不在非主键自增上花时间了,这个字段设置默认值0
- 在使用的时候如果获取到数据是0,就把id给赋值过去,并且按照id的数据进行使用,然后更新会数据库
- 如果不是0就直接使用
查询的官方文档
生成的列 | SQLite中文网 (readdevdocs.com)
te.readdevdocs.com/gencol.html)