Android中的SQLite-如何生成每天带有日期和序号的用户ID

Android中的SQLite-如何生成每天带有日期和序号的用户ID,android,sql,sqlite,Android,Sql,Sqlite,我目前有一个应用程序,我将用户数据存储在SQLite数据库中,其中一个字段是用户ID。我想添加一个选项,以mmddyyXXX格式自动生成用户ID,其中XXX是每个用户每天重置的序列号 有人知道我会怎么做吗?我看了其他一些类似的问题,但它们似乎没有帮助。这一点也不复杂。如果您与android中的SQLite相似,只需使用选择并自己生成日期和用户ID即可 如果XXX不是userId,只需为用户保存另一个包含“令牌”的表即可。每个userId都会有一个“令牌” 每天只需更改此表的内容。我相信您可以使用

我目前有一个应用程序,我将用户数据存储在SQLite数据库中,其中一个字段是用户ID。我想添加一个选项,以mmddyyXXX格式自动生成用户ID,其中XXX是每个用户每天重置的序列号


有人知道我会怎么做吗?我看了其他一些类似的问题,但它们似乎没有帮助。

这一点也不复杂。如果您与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。