筆記_SQLite主鍵


SQLite主鍵是用於唯一定義行記錄的一個簡單字段或多個字段的組合。一個表只能有一個主鍵

主鍵的值不可以是一個NULL值。

創建主鍵

主鍵通常在創建表時一同創建。在執行CREATE TABLE語句時可以直接定義主鍵。

CREATE TABLE table_name (
column1 datatype [ NULL | NOT NULL ],
column2 datatype [ NULL | NOT NULL ],
......
CONSTRAINT constraint_name PRIMARY KEY (pk_col1, pk_col2, ... pk_col_n)
);

  注釋:

  • table_name:指定要創建的表的名稱。
  • column1column2:指定要在表中創建的列。
  • constraint_name:指定主鍵的名稱。
  • pk_col1pk_col2… pk_col_n:它指定構成主鍵的列。

 e.g.創建一個“workers”表,其中worker_id列是表的主鍵。

 

添加主鍵

當沒有在CREATE TABLE語句中定義主鍵時,也可以在創建表后再添加主鍵。

需要注意的是,不能使用ALTER TABLE語句來創建主鍵。在SQLite中需要先創建一個與原表一樣的新表,並在這個新表上創建主鍵,然后復制舊表中的所有數據到新表中就可以了。

PRAGMA foreign_keys =off;
BEGIN TRANSACTION;
ALTER TABLE table_name RENAME TO old_table;
CREATE TABLE table_name (
column1 datatype [ NULL | NOT NULL ],
column2 datatype [ NULL | NOT NULL ],
... CONSTRAINT constraint_name PRIMARY KEY (pk_col1, pk_col2, ... pk_col_n)
);
INSERT INTO table_name SELECT * FROM old_table;
COMMIT;
PRAGMA foreign_keys=on;
  • table_name:指定要創建含有主鍵的表的名稱。
  • old_table:指定要被修表的名稱。
  • column1column2:指定要在表中創建的列。
  • constraint_name:指定主鍵的名稱。
  • pk_col1pk_col2… pk_col_n:它指定構成主鍵的列。
 

 


 

參考:

https://www.yiibai.com/sqlite/primary-key.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM