我有一个sqlite数据库,我正在将样本数据填充到我的表中。如果相关数据正常工作,示例数据需要一点消息,即我需要开始在我的表中放入主键和外键。
第一个问题是,如何在Project表中更新所有行的projectID列,以便每个行号都是存储在projectID字段中的值。我希望这是顺序的并更新索引。
update "project" set "projectID"= Count(*)
第二个问题是,我还必须更新项目表中的customerID外键字段。唯一的问题是,我希望它在值1到50之间更新,我希望随机更新行。这是可能的sql,或者我将不得不从sqlite导出数据并在第三方应用程序中处理并重新导入。
非常感谢
答案 0 :(得分:1)
要获取行号,请使用rowid:
UPDATE project SET projectID = rowid;
random()函数返回-9223372036854775808和+9223372036854775807之间的伪随机整数。
因此要获得介于1和50之间的值,请适当缩放和偏移这些值:
UPDATE project SET customerID = CAST(abs(random()) / 184467440737095517 AS INTEGER) + 1;