临冰听雪 2014-02-22 09:21 采纳率: 0%
浏览 6525

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

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

  • 写回答

1条回答

  • ecz00 2015-06-01 11: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

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题