新闻详情

新闻详情

首页 / 资讯中心 / 详情

外键联动设置

发布时间:2026/11/14 22:47:24来源:尧图网络
外键联动设置
这是 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 └── 普通业务不用改保持默认还有什么不清楚的地方可以继续问。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/14 3:51:47

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/12 23:59:09

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/14 10:11:15

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/14 17:14:38

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/14 16:35:50

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/14 3:51:43

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉