首页/新闻资讯/正文详情

外键联动设置

发布时间:2026/9/24 13:21:36 来源:云帆数科 栏目:资讯中心
外键联动设置
这是 SQLite 的外键约束编辑界面看起来像 Navicat 或 DB Browser for SQLite我结合你的管线代码表/图层表场景逐项解释。一、响应ON UPDATE / ON DELETE 的联动动作这三个复选框分别控制三种触发时机右边下拉框选触发后执行什么动作。三个复选框的含义选项含义ON UPDATE当被引用表图层表的主键/唯一字段被修改时触发。比如把ys_point改名叫ys_pipe_point。ON DELETE当被引用表图层表的记录被删除时触发。比如删掉ys_point这一行。MATCHSQLite 实际支持有限一般不用勾选。它控制复合外键多列匹配规则你是单列外键留空即可。右边下拉框的 5 种动作重点动作含义你的管线场景举例推荐度NO ACTION不做任何特殊处理只要子表代码表还有引用这条记录的数据就阻止 UPDATE/DELETE。行为和不写这个子句基本一样。图层表里删ys_point但代码表里还有101101指向它 → 直接报错删不掉。✅ 默认最安全RESTRICT和 NO ACTION 几乎一样也是阻止删除/修改。区别在于触发时机RESTRICT 更早约束检查更早执行。日常用起来没区别。同上✅ 和 NO ACTION 二选一即可CASCADE级联主表改了/删了子表跟着改/删。图层表把ys_point改名为ys_pipe_point→ 代码表里所有指向ys_point的记录自动同步改成ys_pipe_point。或者删掉图层表ys_point→ 代码表里所有引用它的行整行被删除。⚠️ UPDATE 改名字很实用DELETE 级联删数据很危险慎用SET NULL主表记录被删/改时子表外键字段设为NULL。图层表删掉ys_point→ 代码表里101101的图层字段自动变成空。不会删行。✅ 推荐用这个做 ON DELETESET DEFAULT主表记录被删/改时子表外键字段设为列的默认值。前提是代码表的图层字段设了 DEFAULT ‘unknown’删图层后自动填成unknown。SQLite 对这个支持很弱基本不用。❌ 不推荐给你的场景推荐配置结合你之前说的1个代码对应1个图层ON UPDATE 选 CASCADE图层标识改名时代码表自动跟着改不用手动批量刷。ON DELETE 选 SET NULL图层删了代码表那条要素的图层字段变空而不是把整条要素代码记录删掉删要素代码是要命的。对应建表语句就是FOREIGNKEY(图层)REFERENCES图层表(图层标识)ONUPDATECASCADE-- 图层改名代码表自动同步ONDELETESETNULL-- 图层删除代码表图层字段置空⚠️ 注意如果代码表的图层字段设了 NOT NULLON DELETE SET NULL 会报错。你的场景允许图层为空的话就别加 NOT NULL。二、延迟外键约束DEFERRABLE这两个下拉框控制外键检查在什么时候执行。SQLite 里对应两个子句第一个下拉框DEFERRABLE是否可延迟选项含义DEFERRABLE约束可以被推迟到事务提交时才检查。NOT DEFERRABLE约束不能推迟每条 INSERT/UPDATE/DELETE 语句执行完立刻检查。第二个下拉框INITIALLY初始模式选项含义INITIALLY DEFERRED事务提交时才检查外键。INITIALLY IMMEDIATE每条语句执行时就检查默认行为。实际意义结合你的场景这个功能主要解决插入顺序问题默认NOT DEFERRABLE / IMMEDIATE必须先插图层表再插代码表。如果你先插代码表写了ys_point但图层表还没这行立刻报错。DEFERRABLE INITIALLY DEFERRED你可以在一个事务里先插代码表再插图层表只要提交事务时两边数据对上就行。你需要用吗基本不用管保持默认即可。你的码表是标准配置数据录入流程本来就是先配图层、再录要素代码顺序天然合理。延迟外键主要用于数据迁移/导入时批量倒数据顺序不好控制复杂事务里多张表互相引用A 引用 BB 又引用 A不延迟就插不进去普通业务系统保持默认NOT DEFERRABLE / IMMEDIATE就对了。总结一张图外键约束 ├── 引用表/引用列图层表.图层标识被引用的目标 ├── 响应主表变动时子表怎么办 │ ├── ON UPDATE主表主键被修改时 │ │ └── 推荐 CASCADE —— 图层改名代码表自动同步 │ ├── ON DELETE主表记录被删除时 │ │ └── 推荐 SET NULL —— 图层删了代码表图层字段变空 │ └── MATCH复合外键匹配规则单列外键不勾 └── 延迟外键约束什么时候检查外键 ├── DEFERRABLE默认 NOT DEFERRABLE └── INITIALLY默认 IMMEDIATE └── 普通业务不用改保持默认还有什么不清楚的地方可以继续问。

相关推荐

华为MDC 610/810双域控方案:CCA架构与200 TOPS算力部署实战
华为MDC 610/810双域控方案:CCA架构与200 TOPS算力部署实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 13:21:36

基于深度强化学习的SDN路由算法实践与调优指南
基于深度强化学习的SDN路由算法实践与调优指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 13:21:30

WorkBuddy免费全栈上线实战:从开发到部署的完整踩坑指南
WorkBuddy免费全栈上线实战:从开发到部署的完整踩坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 13:21:30

TMC2209串口调试实战:UART帧格式、寄存器读写与CRC8校验
TMC2209串口调试实战:UART帧格式、寄存器读写与CRC8校验

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 14:01:23

【Dify】高效知识搜索与智能问答应用
【Dify】高效知识搜索与智能问答应用

知识搜索是实现跨平台、多源信息融合的关键技术,尤其在智能问答和决策支持中扮演重要角色。该工作流设计了多节点协作机制,涵盖网络搜索、本地数据库检索和向量语义匹配,依托强大的语言生成模型,实现精准且自然的答案生成。 本文介绍了该知识搜索工作流的整体架构和核心模… · 2026/9/24 14:01:23

【Dify】文本风格重写智能应用
【Dify】文本风格重写智能应用

文本内容的多样化和风格创新已成为内容创作领域关注的重点,智能文本生成技术正不断推动这一趋势发展。自动化处理与风格重写为写作带来了更多创意和效率上的提升。 本文介绍一个基于多大语言模型的文本自动生成与风格重写工作流,涵盖核心模型、节点设计、操作流程及典型应用… · 2026/9/24 14:01:23

【Dify】基于LLM的多关卡人机互动排名游戏应用
【Dify】基于LLM的多关卡人机互动排名游戏应用

互动对战排行榜在各类编程实践、知识竞赛和智能体比拼中,正成为提升参与感和公平性的关键环节。借助大语言模型和自动化流程,文本对战排行榜不仅简化操作流程,也显著提升了效率与准确性。 本文以Dify平台为基础,系统介绍通过大语言模型与工作流节点协作,实现互动对战类文… · 2026/9/24 14:01:23

CANoe CAPL刷写ECU:从UDS诊断到Bootloader时序控制实战
CANoe CAPL刷写ECU:从UDS诊断到Bootloader时序控制实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 14:01:17

STM32H743 SD卡读写实战:MDMA+FATFS配置避坑与性能优化
STM32H743 SD卡读写实战:MDMA+FATFS配置避坑与性能优化

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 14:01:10

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码