SQLite复杂表的更新方式

SQLite复杂表的更新方式

在SQLite中,如果早期设计的表无法满足需要,就需要对表进行更新,如修改名字、添加列。如果针对简单表,修改起来相对容易,直接使用提供的ALTER命令即可。但是如果该表与视图、触发器、索引有关联,处理起来就相对繁琐一些。下面讲解这类表的修改方式。

(1)使用以下命令,备份视图、触发器的SQL脚本。

SELECT  sql FROM  main.sqlite_master WHERE type=‘view‘ or type=‘trigger‘

(2)关闭外键约束。

PRAGMA foreign_keys=OFF

(3)删掉关联的视图、触发器和触发器。

DROP 视图名

DROP 触发器名

DROP 索引名

(4)打开外键约束。

PRAGMA foreign_keys=ON

(5)修改表结构。

(6)修改备份的视图、触发器SQL脚本,并重新构建对应的视图和触发器。重新构建索引。

时间: 2024-10-24 15:22:57

SQLite复杂表的更新方式的相关文章

Sqlite嵌入式数据库的安装、建库、建表、更新表结构以及数据导入导出等等详细过程记录

简介: SQLite 是实现了SQL 92标准的一个大子集的嵌入式数据库.其以在一个库中组合了数据库引擎和接口,能将所有数据存储于单个文件中而著名.我觉得SQLite的功能一定程度上居于MySQL 和PostgreSQL之间.尽管如此,在性能上面,SQLite常常快2-3倍 (甚至更多).这利益于其高度调整了的内部架构,因为它除去了服务器端到客户端和客户端到服务器端的通信. 而令人印象深刻的特点是你可将你的整个数据库系统放在其中.利用非常高效的内存组织,SQLite只需在很小的内存中维护其很小的

SQL需求1-两表关联更新操作

今天,业务部门给我来了一个需求.需要将本地的的excel表格导入到SQL Server中,SQL Server原表t1增加了三列字段,默认是NULL无数据.将本地导入的excel表格t2表中这几列数据更新到原表t1中. 现将导入方法记录下来,方便今后使用: 1. 导入Excel表格到SQL Server中.(略) 2. 查看数据内容 3. 更新数据 4. 更新后数据显示结果 由于本人多年维护 MySQL,现将MySQL 的更新方法整理一下: 1.查看数据内容 2.更新数据 3.更新后数据显示结果

c#_表单处理方式

阅读目录 开始 简单的表单,简单的处理方式 表单提交,成功控件 多提交按钮的表单 上传文件的表单 MVC Controller中多个自定义类型的传入参数 F5刷新问题并不是WebForms的错 以Ajax方式提交整个表单 以Ajax方式提交部分表单 使用JQuery,就不要再拼URL了! id, name 有什么关系 使用C#模拟浏览器提交表单 资源链接 Form(表单)对于每个WEB开发人员来说,应该是再熟悉不过的东西了,可它却是页面与WEB服务器交互过程中最重要的信息来源. 虽然Asp.ne

ARP表的更新和老化

ARP表的更新和老化 ARP表的更新的条件 在实际的环境中,只有同时满足以下两个条件时,设备的ARP表才会更新: 1.设备收到来自某IP的ARP请求包或者其他ARP包: 2.设备的现有ARP表中已经存在该IP对应的ARP表. 其他的非ARP报文不会对设备的ARP表产生影响. ARP表的老化时间 不同系统的ARP表老化时间不同,Windows2000/XP系统ARP表项的老化时间是2分钟,95/98以及NT系统是10分钟,大部分Cisco交换机是5分钟,华为的设备一般是20分钟……这些时间可以通过

[转]一种可以避免数据迁移的分库分表scale-out扩容方式

原文地址:http://jm-blog.aliapp.com/?p=590 目前绝大多数应用采取的两种分库分表规则 mod方式 dayofweek系列日期方式(所有星期1的数据在一个库/表,或所有?月份的数据在一个库表) 这两种方式有个本质的特点,就是离散性加周期性. 例如以一个表的主键对3取余数的方式分库或分表: 那么随着数据量的增大,每个表或库的数据量都是各自增长.当一个表或库的数据量增长到了一个极限,要加库或加表的时候, 介于这种分库分表算法的离散性,必需要做数据迁移才能完成.例如从3个扩

SQL 之 多表联合更新

1. sqlite 多表更新方法 UPDATE tA SET col1=tB.col1 FROM tableA tA INNER JOIN tableB tB ON tA.col2=tB.col2 这是一个非常简单的批量更新语句 在SqlServer中支持此语法 sqlite中却不支持,sqlite中可转换为如下语法: UPDATE tableA SET col1=(SELECT col1 FROM tableB WHERE col2=tableA.col2) 2.SQL Server 多表更新

Oracle\MS SQL Server Update多表关联更新

原文:Oracle\MS SQL Server Update多表关联更新 一条Update更新语句是不能更新多张表的,除非使用触发器隐含更新.而表的更新操作中,在很多情况下需要在表达式中引用要更新的表以外的数据.我们先来讨论根据其他表数据更新你要更新的表   一.MS    SQL    Server   多表关联更新      sql server提供了update的from 子句,可以将要更新的表与其它的数据源连接起来.虽然只能对一个表进行更新,但是通过将要更新的表与其它的数据源连接起来,就

【转】sql 多表联合更新

SQL Update多表联合更新的方法 (1) sqlite 多表更新方法 update t1 set col1=t2.col1 from table1 t1 inner join table2 t2 on t1.col2=t2.col2 #这是一个非常简单的批量更新语句 在SqlServer中支持此语法 sqlite中却不支持 #sqlite中可转换为 如下语法 update table1 set col1=(select col1 from table2 where col2=table1.

数据库MySQL中关于“多表关联更新”的那些事

在常见的sql中,我们经常在查询中进行多表关联查询,用的比较熟练.今天在开发中遇到一个实际业务场景是多表关联更新,一时不知所措.本着多学习的态度,没有直接写java代码去实现,终于把多表关联更新的sql弄清楚了.下面将实际业务场景进行简化,分别有person表和information表,最终目的是将 information表中的年龄更新到person表中的每个人的年龄.分别写了几个sql demo来把多表更新的知识理解透彻. 首先,在更新前,person表和information表分别如下: i