在 SQLite 中,AUTOINCREMENT 是一個用於表欄位自動遞增的關鍵字。當建立表格時,可在特定整數欄位上指定該關鍵字,即可實現該欄位值的自動增加。需注意只有整數型欄位才能使用 AUTOINCREMENT。
CREATE TABLE table_name (
column1 INTEGER AUTOINCREMENT,
column2 datatype,
column3 datatype,
...
columnN datatype
);
以下範例建立一個 COMPANY 表,並插入 7 筆資料:
sqlite> CREATE TABLE COMPANY(
ID INTEGER PRIMARY KEY AUTOINCREMENT,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL
);
INSERT INTO COMPANY (NAME, AGE, ADDRESS, SALARY) VALUES ('Paul', 32, 'California', 20000.00);
INSERT INTO COMPANY (NAME, AGE, ADDRESS, SALARY) VALUES ('Allen', 25, 'Texas', 15000.00);
INSERT INTO COMPANY (NAME, AGE, ADDRESS, SALARY) VALUES ('Teddy', 23, 'Norway', 20000.00);
INSERT INTO COMPANY (NAME, AGE, ADDRESS, SALARY) VALUES ('Mark', 25, 'Rich-Mond', 65000.00);
INSERT INTO COMPANY (NAME, AGE, ADDRESS, SALARY) VALUES ('David', 27, 'Texas', 85000.00);
INSERT INTO COMPANY (NAME, AGE, ADDRESS, SALARY) VALUES ('Kim', 22, 'South-Hall', 45000.00);
INSERT INTO COMPANY (NAME, AGE, ADDRESS, SALARY) VALUES ('James', 24, 'Houston', 10000.00);
執行後,ID 欄位將自動產生 1 到 7 的唯一值:
ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 1 Paul 32 California 20000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Norway 20000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0 6 Kim 22 South-Hall 45000.0 7 James 24 Houston 10000.0
SQLite 內部隱藏的 rowid 也會自動遞增,但兩者行為有關鍵不同:
SQLITE_FULL 錯誤碼。INTEGER PRIMARY KEY AUTOINCREMENT。INTEGER PRIMARY KEY(隱含 rowid)效能略優,儲存空間也較小。