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();
相关推荐
海南java第二人5 小时前
Nebula Graph 实战:基于图数据库存储 CMDB 实体关系
数据库·图数据库·nebula
曹牧5 小时前
oracle:“not all variables bound”
数据库·oracle
数据库百宝箱5 小时前
Oracle RMAN Image Copy 本地恢复
数据库·oracle
zuYM4g7Dp6 小时前
NoSql数据库设计心得
数据库·nosql
睡不醒男孩0308238 小时前
第七篇:揭秘 PostgreSQL 数据库内核级管控:CLup 深度架构设计与高可用底座技术白皮书
数据库·postgresql·clup
cmes_love9 小时前
Level 2逐笔成交历史数据下载方法笔记
数据库·笔记·oracle
swordbob9 小时前
MySQL字符集陷阱:从Oracle迁移踩坑到utf8mb4强制规范
数据库·sql
牛油果子哥q9 小时前
【C++ STL string 】C++ STL string 终极精讲:底层原理、内存机制、全套API、深浅拷贝、易错坑点与工程实战规范
数据库·c++
十五年专注C++开发9 小时前
MySql中各种功能用sql语句实现总结
数据库·sql·mysql
数据库小学妹10 小时前
AI时代数据库怎么选?多模融合、数据统一存储与选型实战指南
数据库·人工智能·经验分享·ai