2017-07-29 79 views
1

由於某些原因,在搜索數據類型時出現了SQLite 2文檔SQLite 2 documentation on typlessness,我讀到了無奈之處。後來我意識到版本2的最後一個版本是在2004年。然後我搜索了版本的3個文檔SQLite 3 documentation,並意識到「無類型」這個詞沒有出現,但是看起來這個版本在版本3中保留了。是否有一個開關從'無類型'到'動態類型'的術語?SQLite typlessness和PRIMARY KEY更改

此外,我試圖在測試數據庫中更改主鍵[版本2的文檔說我不能],我能夠改變它。

Table schema Changing primary key

是SQLite的3則不能無類型,並且可以在主鍵sqlite3的改變?


編輯:多虧了瓦羅,我嘗試以下,並能看到,我不能把一個字符串作爲ID。我也嘗試插入一個額外的行,並且自動添加的id是11而不是2,即使編號從1開始但被更改爲10.所以看起來SQLite在選擇下一行應該編號之前檢查前一個整數。

Trying string for id PRIMARY KEY

回答

1

一般(除非明確的約束),你可以將任何類型的值到SQLite中的任何列,但一個值得注意的例外是如果你聲明的列INTEGER PRIMARY KEY,這意味着它是一個別名內部(整數)rowid。請注意,您在上面的示例中更改了,但未更改主鍵的類型。這是合法的(假設新值是唯一的),但將其改爲例如'abc'不會。