SQLite如何修改字段类型

 更新时间:2024年07月21日 09:04:48   作者:秋·风  
这篇文章主要介绍了SQLite修改字段类型的方法,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修改字段类型的方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SQL Server配置管理器无法连接到WMI提供程序

    SQL Server配置管理器无法连接到WMI提供程序

    这篇文章主要介绍了SQL Server配置管理器无法连接到WMI提供程序,提示您没有权限或者该服务器无法访问,如何解决?
    2016-11-11
  • SQL中WITH AS的使用实现

    SQL中WITH AS的使用实现

    WITH AS短语,也叫做子查询部分,可以定义一个SQL片断,该SQL片断会被整个SQL语句用到,本文主要介绍了SQL中WITH AS的使用实现,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • SQL Server评估期已过问题的解决方法

    SQL Server评估期已过问题的解决方法

    这篇文章主要为大家详细介绍了SQL Server评估期已过问题的解决方法,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • sqlServer使用ROW_NUMBER时不排序的解决方法

    sqlServer使用ROW_NUMBER时不排序的解决方法

    ROW_NUMBER必须指写over (order by **),有时我根本就不想排序,想按原始顺序,那么就可以参考下面的方法
    2013-06-06
  • SQL删除语句DROP、TRUNCATE、 DELETE 的区别

    SQL删除语句DROP、TRUNCATE、 DELETE 的区别

    这篇文章主要介绍了SQL删除语句DROP、TRUNCATE、 DELETE 的区别,帮助大家更好的理解和学习sql语句,感兴趣的朋友可以了解下
    2020-09-09
  • 升级SQL Server 2014的四个要点要注意

    升级SQL Server 2014的四个要点要注意

    升级一个关键业务SQL Server实例并不容易,它要求有周全的计划。计划不全会增加遇到升级问题的可能性,从而影响或延迟SQL Server 2014的升级。在规划SQLServer 2014升级时,有一些注意事项有助于避免遇到升级问题,需要的朋友可以参考下
    2015-08-08
  • 存储过程优缺点分析

    存储过程优缺点分析

    在程序开发中我们经常性的存储过程,可以提升执行效率等,但也也会有一些缺点大家可以根据需要选用
    2012-04-04
  • 用非动态SQL Server SQL语句来对动态查询进行执行

    用非动态SQL Server SQL语句来对动态查询进行执行

    此文章主要向大家讲述的是非动态SQL ServerSQL语句执行动态查询,在实际操作中我尝试在一个存储过程中,来进行传递一系列以逗号划定界限的值,来对结果集进行限制。但是无论什么时候,我在IN子句中使用变量,都会得到错误信息
    2017-06-06
  • sql中的regexp与like区别实现

    sql中的regexp与like区别实现

    本文详细介绍了正则表达式REGEXP和LIKE语句的用途,使用它们进行模式匹配,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-09-09
  • SQL Server把某个字段的数据用一条语句转换成字符串

    SQL Server把某个字段的数据用一条语句转换成字符串

    这篇文章主要介绍了SQL Server把某个字段的数据用一条语句转换成字符串,本文讲解使用一条语句把字段中的数据查询出来并以指定分割符组成字符串,需要的朋友可以参考下
    2015-07-07

最新评论