您的位置:首页 > 数据库

SQLite3 修改字段属性

2017-11-21 16:22 127 查看
改变表名 :

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 = true
NOT 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sqlite3 sqlite android