2
如果我更改表並添加一個新列,將添加從該表中刪除的數據。在sqlite3中更改列並將其添加到表中
ALTER TABLE MyTable ADD COLUMN noOfDays integer default 0 NOT NULL
將上面的SQL命令降MyTable的,然後用noOfDays列ALTER它還是會只是沒有放棄它添加noOfDays列。
如果我更改表並添加一個新列,將添加從該表中刪除的數據。在sqlite3中更改列並將其添加到表中
ALTER TABLE MyTable ADD COLUMN noOfDays integer default 0 NOT NULL
將上面的SQL命令降MyTable的,然後用noOfDays列ALTER它還是會只是沒有放棄它添加noOfDays列。
不,add
只是添加列。它的數據都不會被刪除,表格也不會被刪除。
p.s.從文檔
「注意:另外,當添加CHECK約束時,CHECK約束不會針對表的預先存在的行進行測試。」 (查詢更多SQLite說明書)
非常感謝您的回答! – 2013-03-27 19:46:28
據我記得你必須更新默認值到現有的行(目前無法在文檔中找到它);檢查實例http://stackoverflow.com/questions/3492947/insert-a-not-null-column-to-an-existing-table – Trinimon 2013-03-27 19:51:28
我相信我上面的SQL將創建一個noOfDays列,並插入0作爲默認值。 – 2013-03-27 19:54:24