[英]Add primary key to an existing table
如何在 SQLite 中的現有表中添加主鍵? 我知道我必須生成一個新表並從舊表中復制所有內容。 但是,它一直給我一個錯誤,說數據類型不匹配,因為一個表具有主鍵而另一個表沒有。 我確實在不包括主鍵的情況下運行了相同的命令,並且它可以工作。
CREATE TABLE temp_table
(
id INTEGER PRIMARY KEY,
age INTEGER,
address TEXT
)
INSERT INTO temp_table
SELECT *
FROM original_table
由於我是從 CSV 文件導入數據,所以我不知道如何首先添加 PRIMARY KEY。 如果有人知道解決方案,它也可以工作。
假設原始表有 2 列: age
和address
,您可以列出不帶主鍵的新表的列名:
INSERT INTO temp_table(age, address)
SELECT age, address FROM original_table
或者,包括主鍵並傳遞null
作為其值:
INSERT INTO temp_table(id, age, address)
SELECT null, age, address FROM original_table
或者:
INSERT INTO temp_table
SELECT null, age, address FROM original_table
在所有情況下, id
都將由 SQLite 填充,因為它被定義為INTEGER PRIMARY KEY
,它將從 1 開始自動遞增。
如果原始表中的另一列具有唯一的 integer 值,則可以傳遞該列以填充新id
:
INSERT INTO temp_table(id, age, address)
SELECT col, age, address FROM original_table
將col
更改為列的實際名稱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.