2015-10-07 53 views
0

我有一個sqlite數據庫,我正在填充示例數據到我的表。如果相關數據正常工作,示例數據需要一點點消息傳遞,即我需要在我的表中開始放置主鍵和外鍵。更新列在一個範圍內的隨機值

第一個問題是,如何更新我的項目表中的所有行的projectID列,以便每個行號是存儲在projectID字段中的值。我希望這是順序和更新索引。

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

第二個問題是,我還必須更新項目表中的customerID外鍵字段。唯一的問題是,我希望它在值1到50之間更新,我希望隨機更新行。這是可能的與SQL,或者我將不得不導出數據出來的SQLite和處理在第三方應用程序和重新導入。

非常感謝

回答

1
  1. 要獲得的行號,使用rowid

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

    隨機()函數返回一個僞-9223372036854775808和+9223372036854775807之間的隨機整數。

    因此,要在1到50之間取值,規模和適當抵消這些值:

    UPDATE project SET customerID = CAST(abs(random())/184467440737095517 AS INTEGER) + 1; 
    
+0

感謝,對CustomerID,隨機陳述工作一種享受,將更新專案編號似乎執行,但沒有更新。我現在手動更新了projectID。 – JK36

相關問題