2 u013176520 u013176520 于 2014.02.22 17:21 提问

请问怎么用sql语句去修改sqlite中的数据字段的类型呢?

我现在想写一个方法,用来修改sqlite数据库中某个表中的某个列的类型,因为现在客户需要发生变化了,我需要在数据完整的情况下吧数据类型给改变了,也就是说我不能替换数据库,哪就只有用sql语句去修改类型了,跪求高手。。。

1个回答

ecz00
ecz00   2015.06.01 19:58

sqlite数据库中数据类型存在sqlite_master表中

select sql from sqlite_master where tb_name='tbname'

把这条sql语句改了,表结构就改了。


sqlite的alter table限制很多,所以一般直接把原表改名,复制一个表名与原表一样的,再把改名后的那个原表删了,以下sql语句可以用。
但这样有个问题,新表改完字段类型如果不兼容原表,新表中的该字段数据读不出。

所以要改类型可以不用声明字段类型

begin

alter table zb RENAME TO tempxxx_1

create table zb(rkdh char(15) ,gbdh char(15) ,cph nchar(9) )

INSERT INTO zb(rkdh,gbdh,cph,) select rkdh,gbdh,cph FROM tempxxx_1

drop table tempXXX_1

commit

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!