c# sqlite 修改字段类型

因为sqlite不支持直接修改字段类型, 所以只能创建新的表,再将原始数据复制过去。具体操作步骤如下:

第一步, 将表"tableName"的名称修改为 "oldTable"

复制代码
string queryString = string.Format("ALTER TABLE {0} RENAME TO {1}", "tableName", "oldTable");
SQLiteCommand cmd = new SQLiteCommand(queryString, dbConnection());
cmd.ExecuteNonQuery();

第二步:重新创新新的表"tableName", 这里就可以修改字段的类型

复制代码
queryString = @"CREATE TABLE IF NOT EXISTS " + "tableName"+ @"(
                        fTemplateid INTEGER,
                        fTemplatename VARCHAR)";
cmd.CommandText = queryString;
cmd.ExecuteNonQuery();

第三步: 恢复数据(将表"oldTable"中的数据恢复到 "tableName")

复制代码
queryString = string.Format("INSERT INTO {0} SELECT fTemplateid,fTemplatename FROM {1}", "tableName", "oldTable");
cmd.CommandText = queryString;
cmd.ExecuteNonQuery();

第四步: 删除表"oldTable"

复制代码
queryString = string.Format("DROP TABLE {0}", "oldTable");
cmd.CommandText = queryString;
cmd.ExecuteNonQuery();
相关推荐
ldq_sd7 分钟前
Django 生成PDF文件
数据库
GreatSQL社区8 分钟前
MySQL下200GB大表备份,利用传输表空间解决停服发版表备份问题
数据库·mysql·adb
翻滚吧键盘9 分钟前
数据库无法插入中文字符
数据库
我想回家种地1 小时前
sqlite3基本语句
数据库·sqlite
MarkHD1 小时前
第十一天 - MySQL/SQLite操作 - 数据库备份脚本 - 练习:监控数据存储系统
数据库·mysql·sqlite
weixin_457885823 小时前
智能多媒体处理流水线——基于虎跃办公API的自动化解决方案
运维·数据库·人工智能·ai·自动化
狮歌~资深攻城狮6 小时前
ClickHouse进阶技巧:解锁数据处理的高级潜能
大数据·数据库
极限实验室7 小时前
Easysearch VS Opensearch 数据写入与存储性能对比
数据库
橘猫云计算机设计8 小时前
ASP.NET图书馆借阅系统(源码+lw+部署文档+讲解),源码可白嫖!
java·数据库·后端·爬虫·小程序·毕业设计·asp.net
王伯爵8 小时前
接入网和核心网之间的承载网详细介绍
服务器·网络·数据库