首页 > 数据库 >SQLite修改字段类型的方法

SQLite修改字段类型的方法

时间:2024-07-21 09:07:55浏览次数:18  
标签:SQLite UniSQL1 ColName Execute 修改 chr TableName sql 类型

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,UniSQL1,ColName,Execute,修改,chr,TableName,sql,类型
From: https://www.cnblogs.com/qiufeng2014/p/18314155

相关文章

  • 交叉验证函数返回“未知标签类型:(array([0.0, 1.0], dtype=object),)”
    以下是完整的错误:`---------------------------------------------------------------------------ValueErrorTraceback(mostrecentcalllast)CellIn[33],line21gnb=GaussianNB()---->2cv=cross_val_score(gnb,X_train......
  • 赋值时的 Pydantic 类型转换
    我想使用Pydantic使用特定的哈希函数将明文字符串密码转换为分配时字节类型的哈希值。这是一个最小的示例,显示了我当前(不起作用)的方法。不过我对Pydantic还没有很深入的了解。importbcryptfrompydanticimportBaseModel,field_validatordefhash_password(passwor......
  • 如何修改conftest中的参数化值并将它们传递给pytest中的多个测试用例
    问题:假设一个流程需要10个步骤才能完成。我一一开始该过程的步骤,在这些步骤之间,我想做出不同的断言。每次断言后,我都会继续执行其余步骤。我希望每个断言都作为测试用例发生。所以如果有5个断言,我需要5个测试用例。如果有2组参数化值,那么我需要每组进行5次断言,因此将......
  • Kaggle 无缘无故地给我类型错误
    Kaggle不断给我一个TypeError:'NoneType'objectisnotiterableforthefollowingcode:dls=DataBlock(blocks=(ImageBlock,CategoryBlock),get_items=get_image_files,splitter=RandomSplitter(valid_pct=0.2,seed=42),get_y=parent_......
  • 修改Maven项目默认端口号最简单的方法
    前言每次在创建一个新的Maven项目之后,启动项目总会报8080端口号被占用的问题,既然每次都有这样的困扰,那不如一了百了,直接修改默认的8080端口号。(如果还是想要默认端口号。可参考我主页文章杀死占用了8080的进程)问题描述下面给大家看一下我的运行错误日志:端口修改步骤 1.......
  • 【C语言】数据类型与运算符
    一、进制1.1二进制            在大多数计算机系统中,数据都是通过二进制的形式存在的。二进制是一种“逢二进一”的机制,它用0和1两个符号来描述。为了帮助大家更好地理解二进制,接下来通过二进制和十进制的对比来描述二进制的表示方式十进制二进制......
  • 想让字典操作更优雅?自定义Python字典类型,简化你的代码库!
    目录1、继承dict类......
  • Day44.MySQL配置文件修改
    1.MySQL配置文件修改_编码问题导致需要修改配置2.MySQL配置文件修改_创建my.ini文件并查看用户登录MySQL是否会执行该文件内容3.MySQL配置文件修改_在my.ini中加入mysql编码配置后,重启mysql服务编码统一即可生效4.MySQL配置文件修改_在my.ini中加入管理员和密码,重启mysql服......
  • ctf-web类型练习
    [极客大挑战2019]Http1 打开所给的链接,对网页进行检查 发现隐藏链接/Secret.php 要求我们是从https://Sycsecret.buuoj.cn访问的,没办法,满足他,bp抓包后放给重发器进行伪造referer:服务器伪造--> referer:https://Sycsecret.buuoj.cn 打开后又要求我们用别的浏览器......
  • thinkphp数据库配置文件在哪里?怎么修改?
    thinkphp数据库配置文件tp3.2是config.phptp5是database.php<?phpreturnarray('DB_TYPE'=>'mysql',//数据库类型'DB_HOST'=>'127.0.0.1',//数据库服务器地址'DB_NAME'=>'thinkphp',//数据库名称......