首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SQLite当在其它表B、C等中将列作为外键引用时,从表A中删除行

当在其他表B、C等中将列作为外键引用时,从表A中删除行,SQLite会执行以下操作:

  1. 检查表B、C等中是否存在引用表A的外键约束。如果存在外键约束,SQLite会确保删除操作不会违反引用完整性。
  2. 如果存在外键约束,SQLite会检查表B、C等中是否存在与表A中要删除的行相关联的数据。如果存在相关联的数据,SQLite会根据外键约束的设置执行以下操作:
    • 如果外键约束设置为CASCADE(级联),SQLite会自动删除表B、C等中与表A中要删除的行相关联的数据。
    • 如果外键约束设置为SET NULL(设置为空),SQLite会将表B、C等中与表A中要删除的行相关联的外键列设置为NULL。
    • 如果外键约束设置为SET DEFAULT(设置为默认值),SQLite会将表B、C等中与表A中要删除的行相关联的外键列设置为默认值。
    • 如果外键约束设置为RESTRICT(限制),SQLite会阻止删除操作,并抛出一个错误。
    • 如果外键约束设置为NO ACTION(无操作),SQLite会阻止删除操作,并抛出一个错误。

总结: SQLite在删除表A中的行时,会检查其他表B、C等是否存在引用表A的外键约束。如果存在外键约束,SQLite会根据约束的设置执行相应的操作,以确保删除操作不会违反引用完整性。具体的操作包括级联删除、设置为空、设置为默认值或限制删除操作。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

.NET面试题解析(11)-SQL语言基础及数据库基本原理

或是一页包含了索引B的条目,那这页也仅仅只能存储索引B的条目了。每页除去存储数据之外,还存储一些页头信息以及偏移以便SQL Server知道具体每一在页的存储位置。 ?...覆盖索引:就是在索引包含的数据(非索引,SELECT需要的),这样在使用该索引查询数据时就不会再进行查找(也叫书签查找)了。...锁:锁定整个,这包含了与该表相关联的所有数据相关的对象,包括实际的数据(每一)以及与该表相关联的所有索引。...视图是虚拟的,与包含数据的不一样,视图只包含使用时动态检索数据的查询;不包含任何或数据。使用视图可以简化复杂的sql操作,隐藏具体的细节,保护数据;视图创建后,可以使用与表相同的方式利用它们。...尽可能使用约束,如check、主键、、非空字段来约束。这样做效率最高,也最方便。其次是使用触发器,这种方法可以保证,无论什么业务系统访问数据库都可以保证数据的完整新和一致性。

54710
  • MySQL 最经常使用的一千

    -- 每一个都有一个名字,能够通过 constraint 指定 存在外。称之为(子表),键指向的,称之为主表(父)。...] 此时须要检測一个须要约束为主表的已存在的值。...主表记录被删除表相关记录也被删除。 2. set null。设置为null。主表数据被更新(主键值更新),被设置为null。主表记录被删除表相关记录被设置成null。...但注意,要求该,没有not null属性约束。 3. restrict,拒绝父删除和更新。 注意,仅仅被InnoDB存储引擎所支持。其它引擎是不支持的。...trigger_event指明了激活触发程序的语句的类型 INSERT:将新插入时激活触发程序 UPDATE:更改某一时激活触发程序 DELETE:删除某一时激活触发程序

    1.4K10

    .NET面试题解析(11)-SQL语言基础及数据库基本原理

    或是一页包含了索引B的条目,那这页也仅仅只能存储索引B的条目了。每页除去存储数据之外,还存储一些页头信息以及偏移以便SQL Server知道具体每一在页的存储位置。 ?...覆盖索引:就是在索引包含的数据(非索引,SELECT需要的),这样在使用该索引查询数据时就不会再进行查找(也叫书签查找)了。...锁:锁定整个,这包含了与该表相关联的所有数据相关的对象,包括实际的数据(每一)以及与该表相关联的所有索引。...视图是虚拟的,与包含数据的不一样,视图只包含使用时动态检索数据的查询;不包含任何或数据。使用视图可以简化复杂的sql操作,隐藏具体的细节,保护数据;视图创建后,可以使用与表相同的方式利用它们。...尽可能使用约束,如check、主键、、非空字段来约束。这样做效率最高,也最方便。其次是使用触发器,这种方法可以保证,无论什么业务系统访问数据库都可以保证数据的完整新和一致性。

    64510

    「春招系列」MySQL面试核心25问(附答案)

    具体解析 DELETE语句执行删除的过程是每次删除,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作。...TRUNCATE TABLE 删除的所有,但结构及其、约束、索引保持不变。新标识所用的计数值重置为该的种子。如果想保留标识计数值,请改用 DELETE。...视图是虚拟的,与包含数据的不一样,视图只包含使用时动态检索数据的查询;不包含任何或数据。...覆盖索引就是把要查询出的和索引是对应的,不做回操作! 25、数据库的主键、超、候选是什么?...主键:用户选作元组标识的一个候选程序主键 :如果关系模式R属性K是其它模式的主键,那么k在模式R称为

    52730

    面试中有哪些经典的数据库问题?

    可以支持a 、 a,b 、 a,b,c 3种组合进行查找,但不支持 b,c进行查找 .当最左侧字段是常量引用时,索引就十分有效。...4、分区无法使用约束 5、MySQL的分区适用于一个的所有数据和索引,不能只对表数据分区而不对索引分区,也不能只对索引分区而不对表分区,也不能只对表的一部分数据分区。...十九、级锁定的优点: 1、当在许多线程访问不同的行时只存在少量锁定冲突。 2、回滚时只有少量的更改 3、可以长时间锁定单一的。 二十、级锁定的缺点: 1、比页级或级锁定占用更多的内存。...2、当在的大部分中使用时,比页级或级锁定速度慢,因为你必须获取更多的锁。 3、如果你在大部分数据上经常进行GROUP BY操作或者必须经常扫描整个,比其它锁定明显慢很多。...对一个包含的InnoDB转为MYISAM会失败; 3、InnoDB是聚集索引,数据文件是和索引绑在一起的,必须要有主键,通过主键索引效率很高。

    1.2K01

    24 个必须掌握的数据库面试问题!

    可以支持a 、 a,b 、 a,b,c 3种组合进行查找,但不支持 b,c进行查找 .当最左侧字段是常量引用时,索引就十分有效。...4、分区无法使用约束 5、MySQL的分区适用于一个的所有数据和索引,不能只对表数据分区而不对索引分区,也不能只对索引分区而不对表分区,也不能只对表的一部分数据分区。...十九、级锁定的优点 1、当在许多线程访问不同的行时只存在少量锁定冲突。 2、回滚时只有少量的更改。 3、可以长时间锁定单一的。 二十、级锁定的缺点 1、比页级或级锁定占用更多的内存。...2、当在的大部分中使用时,比页级或级锁定速度慢,因为你必须获取更多的锁。 3、如果你在大部分数据上经常进行GROUP BY操作或者必须经常扫描整个,比其它锁定明显慢很多。...2、InnoDB支持,而MyISAM不支持。对一个包含的InnoDB转为MYISAM会失败。 3、InnoDB是聚集索引,数据文件是和索引绑在一起的,必须要有主键,通过主键索引效率很高。

    52620

    MySQL优化以及索引的使用

    在这里,可以把customerinfo的CustomerID映射到salesinfoCustomerID,任何一条没有合法CustomerID的记录都不会被更新或插入到salesinfo。...注意例子的参数“ON DELETE CASCADE”。该参数保证当customerinfo的一条客户记录被删除的时候,salesinfo中所有与该客户相关的记录也会被自动删除。...该索引要求主键的每个值都唯一。当在查询中使用主键索引时, 它允许对数据的快速访问 物理存储角度,索引分为聚集索引和非聚集索引 聚集索引:中行的物理顺序与键值的逻辑(索引)顺序相同。...一个 只能包含一个聚集索引 索引最左匹配原则 索引可以简单如一个(a),也可以复杂如多个(a, b, c, d),即联合索引。...如有索引(a, b, c, d),查询条件a = 1 and b = 2 and c > 3 and d = 4,则会在每个节点依次命中a、bc,无法命中d。

    85642

    面试中有哪些经典的数据库问题?

    可以支持a 、 a,b 、 a,b,c 3种组合进行查找,但不支持 b,c进行查找 .当最左侧字段是常量引用时,索引就十分有效。...4、分区无法使用约束 5、MySQL的分区适用于一个的所有数据和索引,不能只对表数据分区而不对索引分区,也不能只对索引分区而不对表分区,也不能只对表的一部分数据分区。...十九、级锁定的优点 1、当在许多线程访问不同的行时只存在少量锁定冲突。 2、回滚时只有少量的更改 3、可以长时间锁定单一的。 二十、级锁定的缺点 1、比页级或级锁定占用更多的内存。...2、当在的大部分中使用时,比页级或级锁定速度慢,因为你必须获取更多的锁。 3、如果你在大部分数据上经常进行GROUP BY操作或者必须经常扫描整个,比其它锁定明显慢很多。...对一个包含的InnoDB转为MYISAM会失败; 3、InnoDB是聚集索引,数据文件是和索引绑在一起的,必须要有主键,通过主键索引效率很高。

    80120

    面试中有哪些经典的数据库问题?

    可以支持a 、 a,b 、 a,b,c 3种组合进行查找,但不支持 b,c进行查找 .当最左侧字段是常量引用时,索引就十分有效。...4、分区无法使用约束 5、MySQL的分区适用于一个的所有数据和索引,不能只对表数据分区而不对索引分区,也不能只对索引分区而不对表分区,也不能只对表的一部分数据分区。...十九、级锁定的优点: 1、当在许多线程访问不同的行时只存在少量锁定冲突。 2、回滚时只有少量的更改 3、可以长时间锁定单一的。 二十、级锁定的缺点: 1、比页级或级锁定占用更多的内存。...2、当在的大部分中使用时,比页级或级锁定速度慢,因为你必须获取更多的锁。 3、如果你在大部分数据上经常进行GROUP BY操作或者必须经常扫描整个,比其它锁定明显慢很多。...对一个包含的InnoDB转为MYISAM会失败; 3、InnoDB是聚集索引,数据文件是和索引绑在一起的,必须要有主键,通过主键索引效率很高。

    85130

    面试中有哪些经典的数据库问题?

    可以支持a 、 a,b 、 a,b,c 3种组合进行查找,但不支持 b,c进行查找 .当最左侧字段是常量引用时,索引就十分有效。...4、分区无法使用约束 5、MySQL的分区适用于一个的所有数据和索引,不能只对表数据分区而不对索引分区,也不能只对索引分区而不对表分区,也不能只对表的一部分数据分区。...十九、级锁定的优点: 1、当在许多线程访问不同的行时只存在少量锁定冲突。 2、回滚时只有少量的更改 3、可以长时间锁定单一的。 二十、级锁定的缺点: 1、比页级或级锁定占用更多的内存。...2、当在的大部分中使用时,比页级或级锁定速度慢,因为你必须获取更多的锁。 3、如果你在大部分数据上经常进行GROUP BY操作或者必须经常扫描整个,比其它锁定明显慢很多。...对一个包含的InnoDB转为MYISAM会失败; 3、InnoDB是聚集索引,数据文件是和索引绑在一起的,必须要有主键,通过主键索引效率很高。

    80510

    24 个MySQL面试题,Java 程序员又知道多少呢?

    可以支持a 、 a,b 、 a,b,c 3种组合进行查找,但不支持 b,c进行查找 .当最左侧字段是常量引用时,索引就十分有效。...分区无法使用约束 MySQL的分区适用于一个的所有数据和索引,不能只对表数据分区而不对索引分区,也不能只对索引分区而不对表分区,也不能只对表的一部分数据分区。...(current read) :读取的是记录的最新版本,并且,当前读返回的记录,都会加上锁,保证其他事务不会再并发修改这条记录 十九、级锁定的优点: 1、当在许多线程访问不同的行时只存在少量锁定冲突...2、回滚时只有少量的更改 3、可以长时间锁定单一的。 二十、级锁定的缺点: 比页级或级锁定占用更多的内存。 当在的大部分中使用时,比页级或级锁定速度慢,因为你必须获取更多的锁。...对一个包含的InnoDB转为MYISAM会失败; InnoDB是聚集索引,数据文件是和索引绑在一起的,必须要有主键,通过主键索引效率很高。

    83440

    SqlAlchemy 2.0 中文文档(七十五)

    ### 主键约束名称的反射 SQLite 后端现在利用 SQLite 的“sqlite_master”视图来原始 DDL 中提取的主键约束名称,就像最近的 SQLAlchemy 版本约束所实现的方式一样...ON DELETE 和 ON UPDATE 短语现在反映 Inspector现在将包括 SQLite 方言上的约束的 ON DELETE 和 ON UPDATE 短语,并且作为Table的一部分反映的...ON DELETE 和 ON UPDATE 短语现在反映 Inspector 现在将包括来自 SQLite 方言的约束的 ON DELETE 和 ON UPDATE 短语,并且作为 Table...反映主键约束的名称 SQLite 后端现在利用 SQLite 的“sqlite_master”视图,以原始 DDL 中提取的主键约束的名称,就像最近 SQLAlchemy 版本约束所实现的方式一样...反映主键约束的名称 SQLite 后端现在利用 SQLite 的“sqlite_master”视图,以原始 DDL 中提取的主键约束的名称,就像最近 SQLAlchemy 版本约束所实现的方式一样

    31110

    面试中有哪些经典的数据库问题?

    可以支持a 、 a,b 、 a,b,c 3种组合进行查找,但不支持 b,c进行查找 .当最左侧字段是常量引用时,索引就十分有效。...4、分区无法使用约束 5、MySQL的分区适用于一个的所有数据和索引,不能只对表数据分区而不对索引分区,也不能只对索引分区而不对表分区,也不能只对表的一部分数据分区。...十九、级锁定的优点: 1、当在许多线程访问不同的行时只存在少量锁定冲突。 2、回滚时只有少量的更改 3、可以长时间锁定单一的。 二十、级锁定的缺点: 1、比页级或级锁定占用更多的内存。...2、当在的大部分中使用时,比页级或级锁定速度慢,因为你必须获取更多的锁。 3、如果你在大部分数据上经常进行GROUP BY操作或者必须经常扫描整个,比其它锁定明显慢很多。...对一个包含的InnoDB转为MYISAM会失败; 3、InnoDB是聚集索引,数据文件是和索引绑在一起的,必须要有主键,通过主键索引效率很高。

    75420

    MySQL基础

    SQL Server:Microsoft公司推出的收费的中型数据库,C#、.net语言常用。 PostgreSql:免费中小型数据库。 SQLite:移动平台微型数据库。...所谓二维,指的是由组成的,如下图(就类似于Excel表格数据,有表头、有、有, 还可以通过一关联另外一个表格的某一数据)。...) references dept(id); 删除: ALTER TABLE 名 DROP FOREIGN KEY 键名; 删除/更新行为 行为 说明 NO ACTION 当在删除/更新对应记录时...,首先检查该记录是否有对应,如果有则不允许删除/更新(与RESTRICT一致) RESTRICT 当在删除/更新对应记录时,首先检查该记录是否有对应,如果有则不允许删除/更新(与NO ACTION...一致) CASCADE 当在删除/更新对应记录时,首先检查该记录是否有对应,如果有则也删除/更新在子表的记录 SET NULL 当在删除/更新对应记录时,首先检查该记录是否有对应

    1.9K10

    数据库优化之(创建索引、分、读写分离、缓存)

    普通索引: 允许重复的值出现; 唯一索引: 除了不能有重复的记录其它和普通索引一样(用户名、用户身份证、email、tel); 主键索引:是随着设定主键而创建的,也就是把某个设为主键的时候,数据库就会給改创建索引...在数据处理时回需额外的回退空间; 实际数据修改测试: 一个有字段A、BC,同时进行插入10000记录测试 在没有建索引时平均完成时间是2.9秒 在对A字段建索引后平均完成时间是6.7秒 在对A字段和...换言之,就是要求使用的所有字段,都必须单独使用时能使用索引. 如果类型是字符串,那一定要在条件中将数据使用引号引用起来。否则不使用索引。...按行数据进行分。 如果一张某个字段值非常多(长文本、二进制),而且只有在很少的情况下会查询。这时候就可以把字段多个单独放到一个,通过关联起来。...2、可以使用redis(memcahe)来作为中央缓存,对缓存的数据进行集中处理。

    1.4K10

    SqlAlchemy 2.0 中文文档(五十)

    时,不可能 发出包含相互依赖约束的的 CREATE 或 DROP 语句;要为这些发出 DDL,需要使用 ALTER TABLE 分别创建或删除这些约束,而 SQLite 不支持此操作。...通过 ALTER 创建/删除约束 - 关于 SQLAlchemy 处理的更多信息 相互依赖的约束。...版本 3.24.0 开始,SQLite 支持通过 `INSERT` 语句的 `ON CONFLICT` 子句将“upsert”(更新或插入)到。...时,不可能对包含相互依赖的约束的发出 CREATE 或 DROP 语句;要发出这些的 DDL,需要单独使用 ALTER TABLE 创建或删除这些约束,而 SQLite 不支持这一点。...通过 ALTER 创建/删除约束 - 有关 SQLAlchemy 处理的更多信息 互相依赖的约束。

    31910

    《逆袭进大厂》第十一弹之MySQL25问25答

    具体解析 DELETE语句执行删除的过程是每次删除,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作。...TRUNCATE TABLE 删除的所有,但结构及其、约束、索引保持不变。新标识所用的计数值重置为该的种子。如果想保留标识计数值,请改用 DELETE。...视图是虚拟的,与包含数据的不一样,视图只包含使用时动态检索数据的查询;不包含任何或数据。...覆盖索引就是把要查询出的和索引是对应的,不做回操作! 25、数据库的主键、超、候选是什么?...主键:用户选作元组标识的一个候选程序主键 :如果关系模式R属性K是其它模式的主键,那么k在模式R称为

    48020

    一、Mysql(1)

    答:上述提到MySQL软件可以接受命令,并做出相应的操作,由于命令可以包含删除文件、获取文件内容众多操作,对于编写的命令就是是SQL语句。...多对多 关系转换为数据库的一个 *在关系型数据库中一就是一个对象 三范式 经过研究和对使用问题的总结,对于设计数据库提出了一些规范,这些规范被称为范式 第一范式(1NF):不可拆分 第二范式...名 drop primary key; alter table 名 modify 列名 int, drop primary key; 添加:alter table ...add constraint 键名称(形如:FK__主表) foreign key (字段) references 主表(主键字段); 删除:alter table 名 drop...select * from limit 4,5; - 第4开始的5 select * from limit 5 offset 4 - 第4开始的5   d

    96890

    学习SQLite之路(三)

    一个只能有一个主键,它可以由一个或多个字段组成。当多个字段作为主键,它们被称为复合。   如果一个在任何字段上定义了一个主键,那么在这些字段上不能有两个记录具有相同的值。...重命名列,删除,或从一个添加或删除约束都是不可能的。  3. SQLite  joins:用于结合两个或多个数据库中表的记录。...一旦主连接计算完成,连接(OUTER JOIN)将从一个或两个任何未连接的合并进来,连接的使用 NULL 值,将它们附加到结果。...,从一个或两个任何未连接的合并进来,连接的使用 NULL 值,将它们附加到结果。...WHEN 子句和触发器(Trigger)动作可能访问使用表单 NEW.column-name 和 OLD.column-name 的引用插入、删除或更新的元素,其中 column-name 是与触发器关联的的名称

    3K70
    领券