天天看點

SQLite資料庫表字段修改與删除

我建立一張表,但是在使用過程中發現字段名稱會發生改變,但是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;

修改字段名也是一樣的思想.

繼續閱讀