SQLite如何修改字段类型,
SQLite不支持直接修改字段类型,如需要修改字段类型,可按以下方法处理:
1、将要修改的字段名改名
2、用新的类型添加字段
3、复制原字段的内容
4、删除旧字段
procedure SQLiteAlter(TableName,ColName,NewFileType:string);
var sql:string;
begin
sql:='ALTER TABLE '+TableName+' RENAME COLUMN '+chr(39)+ColName+chr(39)+' TO '+chr(39)+ColName+'_old'+chr(39);
UniSQL1.SQL.Text:=sql;
UniSQL1.Execute;
sql:='ALTER TABLE '+TableName+' ADD COLUMN '+ColName+' '+ NewFileType;
UniSQL1.SQL.Text:=sql;
UniSQL1.Execute;
sql:='UPDATE '+TableName+' SET '+ColName+' = CAST('+ColName+'_old AS '+NewFileType+')';
UniSQL1.SQL.Text:=sql;
UniSQL1.Execute;
sql:='ALTER TABLE '+TableName+' DROP COLUMN '+ColName+'_old';
UniSQL1.SQL.Text:=sql;
UniSQL1.Execute;
end;
//Demo:
SQLiteAlter('blog_Content','TestFieldName','nvarchar(50)');
补充:sqlite sql 修改字段类型
sqlite数据库中数据类型存在sqlite_master表中
select sql from sqlite_master where tb_name='tbname'
把这条sql语句改了,表结构就改了。
sqlite的alter table限制很多,所以一般直接把原表改名。
复制一个表名与原表一样的,再把改名后的那个原表删了,以下sql语句可以用。
新表改完字段类型如果不兼容原表,新表中的该字段数据读不出。
所以要改类型可以不用声明字段类型
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
到此这篇关于SQLite修改字段类型的方法的文章就介绍到这了,更多相关SQLite修改字段类型的方法内容请搜索PHP之友以前的文章或继续浏览下面的相关文章希望大家以后多多支持PHP之友!
您可能感兴趣的文章:- SQLite如何修改字段类型
- python 获取sqlite3数据库的表名和表字段名的实例
- 在SQLite-Python中实现返回、查询中文字段的方法
- c++获取sqlite3数据库表中所有字段的方法小结
- Python实现Sqlite将字段当做索引进行查询的方法
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。