SQLite如何删除,修改、重命名列

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 16:22 点击:

 

今天在SQLite数据库中添加了一列,后来发现列名写错了,于是使用SQL语句来修改列名,可是根本不管用。

首先,请放弃alter吧。

sqlite官方说明如下:

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的alter功能只是alter table的一个子集,只有部分功能,比如重命名表名,新增列到现有表中。

不支持现有列的重命名,删除和修改。

查了N多资料,貌似只能通过一种间接的办法去做了,不管是重命名列还是删除列。

比如说你要修改的表名是A,方法步骤如下:

1.新建一个临时表T,这个T和表A具有相同的列。

2.把A中所有的数据都通过insert语句插入到T中

3.删除表A

4.新建表A,这时表A的列名就是你想要的结果,以前想修改的列名是什么,这时候就定义成什么,以前要删除的某个列,那么在定义的时候就不定义它。

5.恢复数据,把数据通过insert语句插入A,结构是insert into A select ... from tablen T

6.删除临时表T。

这个办法太笨拙了,但是目前还没有更好的办法啊,啊,啊,啊,啊,啊,啊 ,啊, 啊, 啊,啊, 啊,

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • mysql-mmm
      • mysqldump命令——MySQL数据库备份还原
      • Oracle数据导入MySQL的快捷工具:MySQL Migration Toolkit
      • 简简单单储存过程——循环一个select结果集
      • MySQL数据库十大优化技巧
      • Mysql安装笔记
      • Mysql主主复制架构配置
      • Mysql的Procedure 参数为NULL问题分析
      • MySQL Stmt预处理提高效率问题的小研究
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1