我建立一張表,但是在使用過程中發現字段名稱會發生改變,但是SQLite資料庫隻允許增加表字段(alter table my_table add field_name field_type;),不允許修改和删除表字段。這時候隻能使用複制表思想了。步驟如下:
1、将需要修改的表(my_table)重新命名(ALTER TABLE "my_table" RENAME TO sqlitemanager_temp_table_11970396993;),
2、建立一個新的表命名為my_table,填入需要的字段名(CREATE TABLE "my_table" ("id" INTEGER PRIMARY KEY AUTOINCREMENT, "name" VARCHAR, "grender" VARCHAR DEFAULT "biao", "number" TEXT);)。
3、查詢原來表(sqlitemanager_temp_table_11970396993)資料,向新建立的表(my_table)新增資料(INSERT INTO "my_table" ("id","name","grender","number") SELECT "id","name","grender","number" FROM sqlitemanager_temp_table_11970396993;)
4、銷毀原來的表(sqlitemanager_temp_table_11970396993)
SQL語句實作如下:
PRAGMA foreign_keys = 0;
BEGIN TRANSACTION;
ALTER TABLE "my_table" RENAME TO sqlitemanager_temp_table_11970396993;
CREATE TABLE "my_table" ("id" INTEGER PRIMARY KEY AUTOINCREMENT, "name" VARCHAR, "grender" VARCHAR DEFAULT "biao", "number" TEXT DEFAULT "biao");
INSERT INTO "my_table" ("id","name","grender","number") SELECT "id","name","grender","number" FROM sqlitemanager_temp_table_11970396993;
DROP TABLE sqlitemanager_temp_table_11970396993;
COMMIT;
PRAGMA foreign_keys = 1;
修改字段名也是一樣的思想.