Android中的SQLite-如何生成每天带有日期和序号的用户ID
我目前有一个应用程序,我将用户数据存储在SQLite数据库中,其中一个字段是用户ID。我想添加一个选项,以mmddyyXXX格式自动生成用户ID,其中XXX是每个用户每天重置的序列号Android中的SQLite-如何生成每天带有日期和序号的用户ID,android,sql,sqlite,Android,Sql,Sqlite,我目前有一个应用程序,我将用户数据存储在SQLite数据库中,其中一个字段是用户ID。我想添加一个选项,以mmddyyXXX格式自动生成用户ID,其中XXX是每个用户每天重置的序列号 有人知道我会怎么做吗?我看了其他一些类似的问题,但它们似乎没有帮助。这一点也不复杂。如果您与android中的SQLite相似,只需使用选择并自己生成日期和用户ID即可 如果XXX不是userId,只需为用户保存另一个包含“令牌”的表即可。每个userId都会有一个“令牌” 每天只需更改此表的内容。我相信您可以使用
有人知道我会怎么做吗?我看了其他一些类似的问题,但它们似乎没有帮助。这一点也不复杂。如果您与android中的SQLite相似,只需使用
选择并自己生成日期和用户ID即可
如果XXX
不是userId
,只需为用户保存另一个包含“令牌”的表即可。每个userId
都会有一个“令牌”
每天只需更改此表的内容。我相信您可以使用触发器,在插入行时生成userid
以下可能适用:-
CREATE TRIGGER IF NOT EXISTS newuserid AFTER INSERT ON users
BEGIN
UPDATE users SET userid = strftime('%m%d',date('now'))||substr(strftime('%Y',date('now')),3)||
(
SELECT CAST(substr('000',1,3-length(count()+1)) AS TEXT)||CAST((count()+1) AS TEXT)
FROM USERS
WHERE substr(userid,1,6) = strftime('%m%d',date('now'))||substr(strftime('%Y',date('now')),3)
)
WHERE userid IS NULL;
END;
- 触发器名为newuserid
- userid是自动生成的id的列。上面的设置依赖于它为NULL,因此它不能是主索引
- 不依赖于其他列
测试
从空表开始:-
使用INSERT-INTO-users值插入4行(null,“这是一个新用户”)代码>结果为:-
要检查另一个日期,行从041018?调整???到040918???根据:-
使用INSERT-INTO-users值(null,“这是一个新用户”)再插入4行代码>,导致:-
注意:此答案并非故障安全,而是答案概念的基础。4/10/2018344这是您需要的吗?其中344是序列号??我对吗?@Pink jazz搜索以该mmddyy开头的最大ID。