使用范围内的随机值更新列

时间:2015-10-07 22:44:31

标签: sqlite

我有一个sqlite数据库,我正在将样本数据填充到我的表中。如果相关数据正常工作,示例数据需要一点消息,即我需要开始在我的表中放入主键和外键。

第一个问题是,如何在Project表中更新所有行的projectID列,以便每个行号都是存储在projectID字段中的值。我希望这是顺序的并更新索引。

update "project" set "projectID"= Count(*)

第二个问题是,我还必须更新项目表中的customerID外键字段。唯一的问题是,我希望它在值1到50之间更新,我希望随机更新行。这是可能的sql,或者我将不得不从sqlite导出数据并在第三方应用程序中处理并重新导入。

非常感谢

1 个答案:

答案 0 :(得分:1)

  1. 要获取行号,请使用rowid

    UPDATE project SET projectID = rowid;
    
  2. documentation说:

      

    random()函数返回-9223372036854775808和+9223372036854775807之间的伪随机整数。

    因此要获得介于1和50之间的值,请适当缩放和偏移这些值:

    UPDATE project SET customerID = CAST(abs(random()) / 184467440737095517 AS INTEGER) + 1;
    
相关问题