SQLite3 修改字段属性

来源:互联网 发布:炒股软件排名 编辑:程序博客网 时间:2024/05/30 04:29

改变表名 :

ALTER TABLE '旧表名' RENAME TO '新表名' 

删除表

DROP TABLE '表名'

增加一列 :

ALTER TABLE '表名'ADD COLUMN '列名' '数据类型' 

修改列(SQLite不支持)

 ALTER TABLE '表名' ALTER COLUMN '列名' ...

插入数据

INSERT INTO '表' ('列A','列B')VALUES('值A','值B')

从其他表插入数据(复制表)

INSERT INTO '表1' ('列A','列B') select '列A','列B'from '表2'

在SQLite中修改列是不被支持的,所以想要修改列的类型,或者说由NOT NULL = trueNOT NULL = false,是不能直接操作的,需要换个思路:
比如把table_temp 表中的 name(TEXT) 字段 转为非空

Step1 重命名 table_temp表 为临时表 table_temp_old

    ALTER TABLE table_temp RENAME TO table_temp_old 

Step2 创建一个新表 table_temp

CREATE TABLE IF NOT EXISTS table_temp (" +                    "`id`          INTEGER NOT NULL," +                    "`name`        TEXT NOT NULL," +                    "PRIMARY KEY(model_id)" +                    ")

Step3 从临时表 table_temp_old 复制数据到 table_temp

INSERT INTO table_temp (id,name) select id,'null' as name //  因为name可能为null导致异常from table_temp_old

Step4 删除临时表 table_temp_old

DROP TABLE table_temp_old
原创粉丝点击