sqlite3中对表字段的增删改查

本文介绍在SQLite中如何实现字段重命名的方法,由于SQLite不直接支持ALTER TABLE中的RENAME COLUMN指令,文章提供了一种通过创建临时表来间接完成字段重命名的技术方案。
[size=medium]android[/size]今天在做数据库升级时,碰到要对原来数据库中一张表的一个字段名进行修改,但是用:
alter table tablename rename column oldColumnName to newColumnName;
始终不成功,后面查阅相关信息:
SQLite supports a limited subset of ALTER TABLE. The ALTER TABLE command in SQLite allows the user to rename a table or to add a new column to an existing table. It is not possible to rename a column, remove a column, or add or remove constraints from a table.

sqlite支持一个更改表内容的有限子集,就是说在sqlite更改表的命令中,只允许用户重命名表名或者增加多一个列到一个的表中。而重命名一个字段名和删除一个字段、或者增加和删除系统规定的参数这些操作是不可能的。

后面只能先重命名原来的表,之后新建一张表,把原来的数据复制到新表中,最后删除掉旧的表就可以了。效率有点低,但是没办法。
String rename_sql = "ALTER TABLE "+DB.UserInfoTable.TABLE_NAME+" RENAME TO temp";
String insert_sql = "INSERT INTO "+DB.UserInfoTable.TABLE_NAME+" SELECT * FROM temp";
String drop_sql = "DROP TABLE temp";
db.execSQL(rename_sql);
db.execSQL(DB.UserInfoTable.CREATE_TABLE);
db.execSQL(insert_sql);
db.execSQL(drop_sql);

注意执行的顺序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值