加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

SQLite3 修改字段属性

发布时间:2020-12-12 19:17:24 所属栏目:百科 来源:网络整理
导读:改变表名 : ALTER TABLE '旧表名' RENAME TO '新表名' 删除表 DROP TABLE '表名' 增加一列 : ALTER TABLE '表名' ADD COLUMN '列名' '数据类型' 修改列(SQLite不支持) ALTER TABLE '表名' ALTER COLUMN '列名' ... 插入数据 INSERT INTO '表' ( '列A' , '列B

改变表名 :

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读