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();
相关推荐
Junsir大斗师14 分钟前
Nginx服务器代理Postgresql-16后端数据库
数据库·nginx
Je1lyfish15 分钟前
CMU15-445 (2025 Fall/2026 Spring) Project#3 - QueryExecution
linux·c语言·开发语言·数据结构·数据库·c++·算法
百锦再1 小时前
Auto.js变成基础知识学习
开发语言·javascript·学习·sqlite·kotlin·android studio·数据库开发
m0_596749092 小时前
如何防止SQL拼接漏洞_使用PDO对象实现安全的SQL交互
jvm·数据库·python
老纪的技术唠嗑局3 小时前
深度解析 LLM Wiki / Obsidian-Wiki / GBrain:Agent 时代知识的“自组织”与“自进化”
大数据·数据库·人工智能·算法
2301_795099745 小时前
golang如何在Gin中自定义验证器_golang Gin自定义验证器实现方法
jvm·数据库·python
2301_766283445 小时前
如何在MongoDB GridFS中进行按文件大小(length)范围的查询
jvm·数据库·python
萧曵 丶6 小时前
MySQL 高频面试题(由浅到深 完整版,面试必背)
数据库·mysql·面试
czlczl200209256 小时前
MySQL 执行引擎:排序与临时表机制深度解析
数据库·mysql
lifewange6 小时前
DBeaver如何安装
数据库