簡體   English   中英

使用混合語法設置多個主鍵

[英]Set multple primary keys with mixed syntax

我目前正在努力使用強制混合語法的多個主鍵。 我正在編寫的腳本應該復制一個遠程數據庫,但我需要向表中添加另一個主鍵。

新鍵必須是“INTEGER AUTOINCREMENT”鍵。

遠程數據庫中的“CREATE TABLE”語句當前看起來像這樣:

CREATE TABLE "Table_1" (id text, ord text, mod_date TEXT, val TEXT, PRIMARY KEY (id,ord));

我嘗試並失敗的是以下修改:

CREATE TABLE "Table_1" (_id INTEGER PRIMARY KEY AUTOINCREMENT, id text, ord text, mod_date TEXT, val TEXT, PRIMARY KEY (id,ord));

有沒有辦法實現這一點,還是我必須編寫一個 function 來解壓縮“PRIMARY KEY(...)”-Part 以便能夠為每個主鍵設置“PRIMARY KEY”-語句?

一個表中不能有 2 個主鍵。
您已將主鍵定義為PRIMARY KEY (id,ord)

但是 SQLite 確實提供了您需要的東西,因為不是使用WITHOUT ROWID創建的所有表都是Rowid tables
因此,您的表中已經有一個名為rowid的自動增量列,您可以使用它,盡管它沒有在表的CREATE語句中定義。
這實際上是:

rowid 表的真正主鍵(用作在底層 B 樹存儲引擎中查找行的鍵的值)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM