參考:
1.修改表名稱
ALTER TABLE 舊表名 RENAME TO 新表名
eg: ALTER TABLE or_sql_table RENAME TO new_table;
2.添加字段
ALTER TABLE 表名 ADD COLUMN 列名 數據類型
eg: ALTER TABLE new_table ADD COLUMN sex Text;
3.查詢表結構
PRAGMA TABLE_INFO (表名)
eg: PRAGMA TABLE_INFO (new_table);
4.修改表結構字段類型
SQLite 僅僅支持 ALTER TABLE 語句的一部分功能,我們可以用 ALTER TABLE 語句來更改一個表的名字,也可向表中增加一個字段(列),但是我們不能刪除一個已經存在的字段,或者更改一個已經存在的字段的名稱、數據類型、限定符等等。
而修改一列無法像其他數據庫那樣直接以“ALTER TABLE 表名 ADD COLUMN 列名 數據類型”的方式來完成,所以要換種思路,具體步驟看下面:
- --1.將表名改為臨時表
ALTER TABLE "Student" RENAME TO "_Student_old_20140409";
- 2
--2.創建新表
CREATE TABLE "Student" ("Id" INTEGER PRIMARY KEY AUTOINCREMENT, "Name" Text);
- 3
--3.導入數據
INSERT INTO "Student" ("Id", "Name") SELECT "Id", "Title" FROM "_Student_old_20140409";
- 4
--4.更新sqlite_sequence
UPDATE "sqlite_sequence" SET seq = 3 WHERE name = 'Student';
由於在Sqlite中使用自增長字段,引擎會自動產生一個sqlite_sequence表,用於記錄每個表的自增長字段的已使用的最大值,所以要一起更新下。如果有沒有設置自增長,則跳過此步驟。
- 5
--5.刪除臨時表(可選)
DROP TABLE _Student_old_20140409;