假若我們?cè)趧?chuàng)建表的時(shí)候,把某個(gè)字段的名字寫(xiě)錯(cuò)了,并且已經(jīng)寫(xiě)入了許多的數(shù)據(jù),我們要把字段名改正回來(lái),需要怎樣做呢?
SQLite 并不支持我們直接去修改一個(gè)字段名,我們需要用一個(gè)比較復(fù)雜的操作來(lái)實(shí)現(xiàn):
- 把原表重命名
- 新建一張表使用原表的名稱(chēng),并在新建時(shí)候修改原錯(cuò)誤的字段名
- 用原表中的數(shù)據(jù)填充到新表中
- 刪除原表
下面用一個(gè)例子演示,假設(shè)有一個(gè)表,需要將 “colb” 重命名為 “col_b”。
- 把原表重命名
ALTER TABLE orig_table_name RENAME TO tmp_table_name;
orig_table_name 是原表名稱(chēng),我們先在要把它作為臨時(shí)表使用,故重命名為 tmp_table_name 。
- 新建一張表使用原表的名稱(chēng),并在新建時(shí)候修改原錯(cuò)誤的字段名
CREATE TABLE orig_table_name (
col_a INT
, col_b INT
);
注意,建立新表時(shí)各字段的設(shè)置應(yīng)該與舊表保持一致。
- 用原表中的數(shù)據(jù)填充到新表中
INSERT INTO orig_table_name(col_a, col_b)
SELECT col_a, colb
FROM tmp_table_name;
- 刪除原表
DROP TABLE tmp_table_name;