sqlite3添加、修改列名(转)
sqlite3添加、修改列名
http://blog.163.com/yi_xiaoluo@126/blog/static/72090439201161533941528/
SQLite如何删除,修改、重命名列 .
http://blog.csdn.net/cangkukuaimanle/article/details/6847536
今天在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。
这个办法太笨拙了,但是目前还没有更好的办法啊,啊,啊,啊,啊,啊,啊 ,啊, 啊, 啊,啊, 啊,
查了半天sqlite的手册,没找到怎么修改列名。最后用了一个很笨的方法。
这里我要把post的tbl重命名为tb_l。
首先重命名post表。
ALTER TABLE post RENAME TO tmp_post;
在重新创建post表。
?1234 CREATE TABLE post(id integer primary key autoincrement,tb_l varchar(128) not null);
把tmp_post的数据导入post,并删除tmp_post;
insert into post (tb_l) select tbl from tmp_post;
drop table tmp_post;
如果原表tmp_post和新创建的标post列数一致,并且是一一对应的话,可以用一下语句导入。
insert into post select * from tmp_talbe;
--------------------------------------
使用Sqliteman修改表时,遇到一个问题,每当添加或修改列信息时,作为主键的信息就会丢失,所以只能自己写Sql执行了。示例:
ALTER TABLE "store_productcategory" ADD COLUMN "DisplayOrder" INT DEFAULT(0)
http://blog.csdn.net/az44yao/article/details/7736782
sqlite3添加、修改列名(转)的更多相关文章
- oracle 表字段添加 修改 删除语法
修改列名 alter table 表明 rename column rename 老列名 to 新列名添加 字段alter table 表名 add(字段名 类型):删除字段alter table 表 ...
- mysql 增加列,修改列名、列属性,删除列语句
mysql增加列,修改列名.列属性,删除列语句 mysql修改表名,列名,列类型,添加表列,删除表列 alter table test rename test1; --修改表名 alter t ...
- JavaWeb_day03_员工信息添加修改删除
day03员工的添加,修改,删除 修改功能 思路 : 点击修改员工数据之后,跳转到单行文本,查询要修改的员工id的全部信息,主键id设置为readonly,其余的都可以修改, 修改之后,提交按钮,提交 ...
- Pandas中DateFrame修改列名
Pandas中DateFrame修改列名 在做数据挖掘的时候,想改一个DataFrame的column名称,所以就查了一下,总结如下: 数据如下: >>>import pandas ...
- mysql修改列名和列类型
MySQL中修改列名或列的数据类型 (2012-04-03 08:59:25) 转载▼ 标签: mysql 修改列名 修改列数据类型 it 分类: 数据库 参考下面链接中的语法 http://dev. ...
- Web 1三级联动 下拉框 2添加修改删除 弹框
Web 三级联动 下拉框 using System; using System.Collections.Generic; using System.Linq; using System.Web; u ...
- roundcute 添加修改密码插件
添加修改密码插件 现打开main.inc.php 文件,搜索“$rcmail_config['plugins']”,找到: // List of active plugins (in plugins/ ...
- ASP.NET MVC用存储过程批量添加修改数据
用Entity Framework 进行数据库交互,在代码里直接用lamda表达式和linq对数据库操作,中间为程序员省去了数据库访问的代码时间,程序员直接可以专注业务逻辑层的编写.但是对于比较复杂的 ...
- 帝国cms添加修改会员字段时字段名不能带数字,否则注册页会出现空白
这几天ytkah在整帝国cms会员模块,根据客户需求添加不同的字段,这个相对不难,可还是遇到了点问题.当时添加会员字段时,在字段名用数字“1”来代表第一次,如下图的字段名“1rwsdy” 但是添加以后 ...
随机推荐
- java7与java8的新特性
java7 新特性: 1. switch 里面的 case 条件可以使用字符串了. 2. 运用 List\tempList = new ArrayList<>(); 即泛型实例化类型自动判 ...
- HDU 4669 Mutiples on a circle 不知道该归为哪一类。
题意:给你N个珠宝和一个K,每个珠宝上面都有数字,这个珠宝做成项链,把珠宝上的数字拼起来如果可以整除掉K,那么久说这个数字为wonderful value,问你有多少种方案可以组成WONDERFUL ...
- field字段错位手动更改方法
update tbprotocolex set field='1' where name='ICMP';update tbprotocolex set field='1' where name='DN ...
- DataTable RowFilter 过滤数据
用Rowfilter加入过滤条件 eg: string sql = "select Name,Age,Sex from UserInfo"; DataTable dt = Data ...
- 二十四、DBMS_SQL
1.概述 1) 在整个程序的设计过程中,对游标的操作切不可有省略的部分,一旦省略其中某一步骤,则会程序编译过程既告失败,如在程序结尾处未对改游标进行关闭操作,则在再次调用过程时会出现错误. 2) db ...
- RabbitMQ(4) 未路由的消息、TTL和死信
未路由的消息 当生产这发送的消息到达指定的交换器后,如果交换器无法根据自身类型.绑定的队列以及消息的路由键找到匹配的队列,默认情况下消息将被丢弃.可以通过两种方式 处理这种情况,一是在发送是设置man ...
- log4cpp
body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...
- Join, Group Join
Linq的 Join对应SQL中的inner join,当左右两张表有匹配数据时才返回一条记录: Linq的 Group Join对应SQL中的LEFT OUTER JOIN,即使右表中没有匹配,也从 ...
- react 问题
安装依赖报错问题 可能需要按顺序安装, 不能cnpm npm 混合安装, 参考react项目入门 react an ...
- tensorflow windows
conda create -n py35 python=3.5 activate py35 pip install --ignore-installed --upgrade https://stora ...