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

SQLite3 数据库升级

发布时间:2020-12-12 20:14:29 所属栏目:百科 来源:网络整理
导读:在当前数据库中创建表 create table person(id integer,name Text); 插入两条数据 insert into person values(1,"zhangsan");insert into person values(2,"lisi"); 查看当前的数据库内容 select * from person; 1|zhangsan 2|lisi 一、给表添加新列 新添加
在当前数据库中创建表
 create table person(id integer,name Text);


插入两条数据
insert into person values(1,"zhangsan");
insert into person values(2,"lisi");


查看当前的数据库内容
select * from person;


1|zhangsan
2|lisi


一、给表添加新列



新添加一列 sex
 alter table person add column sex Text default 'male';

再次查询
1|zhangsan|male
2|lisi|male
多了一列 sex 其默认值是 male


二、删除表中的某列


现在想删除刚才添加的列 sex
alter table person drop column sex;

你会得到这样的错误
Error: near "drop": syntax error
sqlite 不支持该项操作。


如果在数据库升级中,需要删除原有的列,怎么办?
step1. 创建新表
create table new_person(id integer,name text);

step2. 复制原有表中的数据
insert into new_person select id,name from person;

step3. 删除原来的表
drop table person;


再次查询表 new_person
1|zhangsan
2|lisi

这样就模拟了删除列的操作。

还有这样一种情况,原有表中的字段少于即将升级的数据库表字段。
person(原来的旧表):只有字段 id、name
new_person(升级的表):有三个字段 id、name、sex(升级的目的就是想多加该列)


可以这样做
insert into new_person select id,name,'female' from person;

其中,'female' 是 sex 列的默认值。

(编辑:李大同)

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

    推荐文章
      热点阅读