SQL Server外键与级联更新机制:从主键到引用完整性全面解析
简介这是一份数据库实验四的完整实验报告文档docx面向正在学习SQL Server数据完整性约束的学生覆盖主键、唯一约束、外键引用完整性与级联更新的T-SQL操作方法。内容以课内任务为主线完整记录了创建/删除主键和唯一约束的语句以及修改主表、从表数据时的约束冲突提示与验证结果帮助理解参照完整性被破坏的场景。思考题部分还解释了增删改操作破坏完整性的典型情况、约束冲突时应保留约束并提示、主键与外键约束添加失败的原因等。课外任务则记录了外键级联更新失败的现象并给出保证数据正确性的思路。资源为单个docx文档压缩包约711KB排版清晰适合实验前预习、实验后复盘或备考复习使用。已有344人学习下载是数据库课程实验四的实用参考资料。1. 一个约束拦住的“错觉”主表改部门号反而被从表拒绝不少人第一次跑这个实验时心里想的是另一套剧本主表是数据源头我改主表的部门代号从表跟着变就是了。结果真的执行UPDATE dept SET DeptNo 00108 WHERE DeptNo 00101语句直接被一条REFERENCE约束拦下来冒出FK__person__DeptNo__2B0A656D冲突。明明改的是主表兜头一盆冷水的却是从表。这个现象第一次见到时非常劝退但最后你会发现数据库这么做不是添乱而是在替数据守一道防线的底线主表里删掉或改掉一个被引用的键从表里那条记录会因为失去参照对象而变成无主数据——接下来的报表统计、联表查询、薪资归属全都会静默出错。这道防线值得搞透是因为它不是一个开关那么简单的“外键选项”而是一整套约束语义主键约束、唯一约束、外键约束、级联引用四者组合起来才能完整描述“数据之间允许怎么变”。实验里从增删改主表、增删改从表、再到级联引用的测试路径恰好走了一圈数据库保证数据一致性的全套机制。下面的内容会沿着现象逐步拆到约束的底层判断规则和 T-SQL 的具体落法看完你就知道为什么那些冲突提示会出现在看似“不该出现”的地方。2. 主键与唯一约束联合主键为什么能锁住三列又为什么能撤销这次实验的第一步不是建表而是在一张已经有数据的表pay上动约束把三列No、Year、Month联合定义成主键。很多人觉得联合主键就是把三个字段捆成一捆但其实它的判断单位是一次“行的组合值”。2.1 联合主键的判定粒度整行组合才算数ALTER TABLE pay ADD CONSTRAINT PK_pay PRIMARY KEY (No, Year, Month)这条语句的核心行为相当于在pay表上立了一条规则任意两行的No、Year、Month三列值组合不能完全相同而且这三列各自都不能是NULL。在物理实现上这一步会顺手建立一个以(No, Year, Month)为键的唯一索引后续每次插入或更新时数据库都会走一遍这个索引去检测有没有组合值重叠。这里最容易想偏的点是联合主键并不要求“每一列单独唯一”。No可以重复出现Year也可以重复出现只要三列拼起来不重复就能通过校验。比如实验场景里一个人可能有 2022 年和 2023 年两条薪酬记录两行数据No相同、Year不同是完全合法的。主键的真实语义是“标识一条行记录的唯一身份”它不是单列属性而是整行组合的属性。理解了这一点再反过来看删除主键的语句就很简单ALTER TABLE pay DROP CONSTRAINT PK_pay;执行这条删除语句的动作是同时撤销两件事一是约束本身的校验规则二是在约束存在时自动创建的底层唯一索引。约束删除后pay表重新允许出现三列值完全相同的重复行——校验逻辑不在了索引也空了数据入口重新放开。2.2 唯一约束允许 NULL 是它和主键最微妙的差别第二步要对dept表的部门名称列处理唯一约束。唯一约束的语法结构和主键很像但有一个实验里不会直说、却非常关键的差异唯一约束所在的列允许存在多个NULL。原因是唯一约束用索引去查重而数据库的索引默认不把NULL当作可比较的值参与唯一性冲突判断——几个NULL互相之间根本不构成“重复”。主键则不给你这个余量主键列上任何NULL直接拒绝写入。所以ALTER TABLE dept ADD CONSTRAINT UK_DeptName UNIQUE (DepartmentName)建立的是“非空值时不得重复”的规则。删除这层约束用DROP CONSTRAINT UK_DeptName操作路径和删除主键一模一样。值得一提的是实验的设计让你在“有数据的情况下”操作约束目的就是暴露一个隐患如果dept表里已经存在两个完全相同的部门名称那这条ADD CONSTRAINT会在执行瞬间直接失败提醒你现有数据和约束条件冲突——必须先清洗数据再立约束。2.3 约束校验时机语句级检查带来的隐性开销主键和唯一约束的冲突检测不是一边改一边看的而是在整个语句执行完成后统一检查。比如你执行一条UPDATE要改动十行数据数据库不会立即拒绝第一行“暂时撞键”的中间状态而是等十行全部改完再一次性判断全表有没有违反规则。这种“语句级约束检查”是 SQL 标准的一个常见实现思路好处是避免中间态误伤代价是约束检查离不开索引参与——没有索引每一轮增删改都得做一次全表扫描比对性能会迅速劣化成灾难。这也是为什么你在建主键时经常能看到附带索引的提示索引不只是为了查询加速更是为了让约束检查在可接受的复杂度内完成。提示给一张线上大表加主键或唯一约束时数据库会在后台先扫描现有数据做校验数据量大时这条语句会长时间阻塞表的写操作。常见的做法不是在业务高峰期直接执行ALTER TABLE而是先在测试环境用同量级数据估算耗时。3. 引用完整性外键冲突时数据库到底在维护什么实验三和实验四给你的场面是两块改主表被拒、改从表被拒。两条报错信息看似都在说“冲突”但冲突的本质完全不同。这一节把引用完整性的机制彻底拆开。3.1 主表是“参照源”从表是“参照方”dept和person之间建外键时语义是person.DeptNo里的每一个值必须在dept.DeptNo里找得到。外键约束在数据库内部维护的不是一个指针而是一条实时校验的依赖关系——它知道哪个表是参照目标哪个表是参照来源。当你执行UPDATE dept SET DeptNo 00108 WHERE DeptNo 00101数据库会看到主表dept正在改动被别人依赖的键值。它要回答的问题是person表里那些原本DeptNo 00101的记录现在该怎么办。这个问题在“没有级联规则”的外键约束下只有一个答案禁止主表改动。因为一旦允许person表里就会出现DeptNo 00101却找不到任何部门与之对应的悬挂记录。这就是实验三那条FK__person__DeptNo__2B0A656D冲突存在的意义——它拦住的不是“主表更新”这个行为而是“主表更新可能导致从表整体失去参照”这个后果。3.2 修改从表被拒参照方向反过来了实验四的场景是把pay表的工号从000002改成000020。这条语句失败时的外键约束名是fk_no与实验三的REFERENCE约束名不同报错类型也不同。数据库实际上在做一道反向校验pay.No参照的是person.No你打算把从表的某一个值改成一个主表里不存在的新值那这条修改后的记录就脱离了参照关系的保护范围。数据库会拿着新值000020去主表里查一遍——查不到立刻拒绝。这个细节揭示外键约束的核心机制它本质上是一个“双向自动检查器”。主表方向它防止删除或修改被引用的键从表方向它防止插入或修改出主表中不存在的引用值。两条方向缺少任何一条参照完整性都会漏风。实验里故意把主表和从表的修改操作都测试一遍就是为了验证这个双向检查都真实生效。3.3 外键添加失败的真实原因存量数据比新规则更早“违规”思考题里还藏了一个难点给已有数据的表添加外键约束时提示“与某列冲突”。很多人一脸懵觉得规则刚建立哪来的违反原因在于约束检查不只是面向未来的写入也会把表里现存的所有数据全部跑一遍校验。比如sc表里已有的选课记录中某个cno在course表里根本不存在那ALTER TABLE sc ADD CONSTRAINT fk_sc_cno FOREIGN KEY (cno) REFERENCES course(cno)就会在语句执行阶段直接失败。这个设计逻辑是数据库不允许你建立一个“一出生就不成立”的规则。实操中的应对方式是先做“脏数据排查”把从表里找不到参照源的记录找出来再决定是补齐主表数据、还是修正从表记录最后再添加外键。这比“先删了现有同名校验再重新加”要可靠得多——前面的实验思考题里也点过这个坑删掉约束再去操作短期内数据能跑通但此后任何不符合逻辑的数据都被放进来了事后想揪出来全靠人工。约束的本质不是给开发添麻烦而是给数据做前置质检。4. 级联引用为什么设置成功级联更新却并不总能生效实验五和课外任务一起看会形成一个鲜明的反差把dept主表里00101改成00108从表person的部门代号也自动改成了00108级联引用生效了。但课外任务里把course表的cno从0809023501改成0809023601级联更新却失败cpno也没跟着变。同一个实验两种结果很多人在这里卡住。4.1 级联引用的生效前提外键定义里明确声明动作级联不是外键的默认行为而是外键定义里显式声明出来的动作。实验五中能级联成功前提是外键定义时写了ON UPDATE CASCADE。它的语义是当主表更新键值时先把主表记录改掉再自动把所有从表中引用旧值的记录同步改成新值。整个操作在同一个事务里完成中途任何一步失败都会整体回滚。-- 以课外任务里 sc 表为例 ALTER TABLE sc ADD CONSTRAINT fk_sc_cno FOREIGN KEY (cno) REFERENCES course(cno) ON UPDATE CASCADE;但这条语句放在实验环境中构建的三张表关系里会遇到一个结构性问题sc.cno参照course.cno而course.cpno也参照course.cno。把0809023501改成0809023601时数据库确实会级联更新sc里对应的选课记录但如果报错信息显示的是“与 REFERENCE 约束冲突”多半是因为级联路径上还有其它外键没有同步声明ON UPDATE CASCADE。换句话说级联更新只对“声明了级联的那一条外键关系”负责它不会自动推断整条引用链上一路都要级联。4.2 级联更新失败时看什么报错信息定位断裂点课外任务第一问特别值得记录级联更新失败时的提示信息。常见的失败形式有两种一种是在ALTER TABLE sc添加级联外键时直接失败原因是sc表里存在cno在course表里找不到对应的“存量脏数据”导致外键根本建不起来另一种是外键建起来了但在执行UPDATE course SET cno 0809023601时数据库报出其它外键约束冲突说明这个新值0809023601虽然在course表里已经存在——主键重复——或者还有别的表通过另一条外键引用着旧值而那一条外键没有级联规则。cpno没有跟着更新这件事也能从这里解释course表的cpno是自己参照自己的外键它和sc.cno指向course.cno是两条独立的外键声明。级联更新在数据库实现中通常只沿“声明了ON UPDATE CASCADE的外键关系”传播不会自动跨跃你定义的另一条静态外键。所以当你看到“课程号改了、先修课编号没改”时先别急着怀疑数据库出 bug回去检查那两条外键各自的ON UPDATE CASCADE是否都在。4.3 外键实现不了某些级联更新那怎么办课外任务最后一道三颗星的思考题问的是“外键不能实现级联更新怎样保证数据正确性”。这个问题其实是数据库设计里一个非常经典的取舍话题。常见的实现思路有两条第一条思路是绕开级联在应用层按顺序操作先查主表里的旧值对应哪些从表记录手动把从表改成新值再改主表最后统一提交。顺序反了就报错。好处是逻辑显式可控坏处是你要为每一处引用关系都写一套同步逻辑引用链一多就容易漏。第二条思路是建触发器在主表更新时写AFTER UPDATE触发器把级联更新的动作手工补全。触发器和级联约束都能保证“主表一变、从表跟着变”但触发器的额外价值是你可以写更复杂的业务规则——比如判断从表某条记录是否处于“已归档”状态归档过的就不跟着改。级联约束是数据库内置的固定行为触发器是你可以完全定制的行为。实验最后一句话给的方案其实更接近第一性原理更新外键时保证新值在主表里存在插入外键时保证引用值在主表里存在删除主表键值时保证从表对应的引用也删掉或用ON DELETE CASCADE处理。这套“先查、再改、全程事务”的流程加上数据库本身的约束兜底数据正确性才不会因为某个接口漏写逻辑而崩。提示ON DELETE CASCADE的杀伤力比ON UPDATE CASCADE大得多。删除主表一行记录时级联删除会连带把从表所有引用记录全部物理删除一旦从表下面还有更深层的引用链可能引发多级联动删除。生产环境使用要非常谨慎。5. 常见问题与避坑约束相关操作的血泪经验约束相关操作的特点是报错信息短、后果不直观、复现概率高。这里把实验中最容易踩的坑按“现象 → 原因 → 解决”的路径梳理一遍后续做类似实验或开发任务时可以直接对照排查。5.1 已有重复数据的表加主键报“与某列冲突”现象对一张已经存在数据的表执行ALTER TABLE ... ADD PRIMARY KEY数据库直接报冲突而且不告诉你具体是哪一行重复。原因约束建立时会全表扫描现有数据主键要求非空且唯一存量数据里只要有一组重复组合整条语句就会失败。这跟主键约束“从今往后必须遵守”的理解不同它是“包括历史数据在内都必须遵守”。解决先用分组查询找出重复组合比如SELECT No, Year, Month, COUNT(*) FROM pay GROUP BY No, Year, Month HAVING COUNT(*) 1把重复数据处理干净后再加约束。不要试图绕过约束绕过等于把脏数据永久留在表里。5.2 改主表被“REFERENCE”莫名拦截改了从表又被“FOREIGN KEY”拦现象改dept表的DeptNo报FK__person__DeptNo__... 冲突改pay表的No报fk_no 冲突。两条都是外键相关错误但一个发生在主表更新方向一个发生在从表更新方向。原因主表更新被拦是因为从表里有引用旧值的记录从表更新被拦是因为新值在主表里不存在。两种错误背后的检查逻辑完全不同。解决主表方向想办法同步下游——要么先改从表、要么配置级联更新从表方向先确认新值在主表里的确存在再执行更新。看报错名里的约束名是哪个可以快速判断被哪条引用关系卡住。5.3 建外键时提示“与列冲突”表里却看不到明显问题现象ALTER TABLE ... ADD CONSTRAINT ... FOREIGN KEY ... REFERENCES ...失败提示语句与某列冲突。原因从表存量数据里已经存在主表中找不到的引用值。比如sc表里有cno 090001但course表里没有这个课程号。数据库建外键时全量校验直接拒绝。解决执行一次SELECT DISTINCT sc.cno FROM sc LEFT JOIN course ON sc.cno course.cno WHERE course.cno IS NULL找到悬挂记录补齐或清理再添加外键。这个排查脚本值得存一份以后在其它项目里加外键几乎必用。5.4 级联更新失败后手动改了从表但漏了更深一层引用现象课外任务里课程号改了sc表的部分数据更新了但course表自己的cpno列还指向旧课程号后面查先修课时数据对不上。原因级联更新只沿“已声明ON UPDATE CASCADE的外键关系”传播。sc.cno和course.cpno是两条独立外键只给其中一条级联另一条自然纹丝不动。解决在数据库里先查询所有引用目标表的外键定义把需要级联的逐条声明清楚如果业务不允许全部级联就给手工更新逻辑加一套“自检脚本”在事务内查询所有外键引用关系做一次全面比对。宁可更新前多查一步也不要改完再回头找。6. 设计取舍为什么约束校验放在数据库里而不是全交给业务代码回头看这次实验的完整链路一个真正值得琢磨的问题会浮现出来约束检查逻辑明明可以用应用层的if-else把每个场景都判断一遍为什么数据库还要内置主键、唯一、外键、级联这么一套重型机制这里藏着一个数据库设计的本质取舍——约束属于数据本身不属于任何一条业务路径。如果你把完整性校验全放在应用层就意味着每有一个新的客户端入口就要重新实现一遍“改主表前先查从表、改从表前先查主表”的逻辑。开发时十个人写十种写法某一个入口漏写了判断脏数据就会绕过防线进入数据库。而把约束放在数据库里规则是集中声明、统一执行的不管是 T-SQL 语句直接操作还是程序里的 ORM 在跑任何入口进来的数据都得过同一道关卡。这个取舍的关键词是“兜底”而不是“替代业务校验”。另一个看不到但非常重要的点是并发环境下的原子性。应用层的“先查后改”在单线程下也许行得通但一旦两个事务同时操作同一批数据查完和改完之间可能有别的事务插入一条新记录让整个校验形同虚设。数据库的约束检查是语句级、事务级的它在并发控制层面和锁、索引协同工作能保证“校验规则和数据变更在同一原子操作里完成”。这个细节正是实验里那些约束冲突提示在不同场景下反复出现的原因——如果你把这一整套逻辑搬到应用层去模拟光是处理并发下的检查时序就够写一大段难以维护的代码。我最早做模拟项目X时也走过“先删约束、后改数据、再补约束”的野路子短期跑得很顺直到测试环境出现了一批查不到归属的悬空记录才意识到把约束当成“碍事的开关”是多么幼稚。从那以后我每次写涉及外键关系的表结构变更都强制先列出所有引用关系再决定走级联、手动同步还是触发器绝不先斩后奏。约束不是给你添堵的它是数据库帮你守着的那条数据底线别急着拆先搞清楚它为什么拦你——希望帮到你。本文还有配套的精品资源点击获取

相关新闻

平安银行IT笔试题深度解析与工程化验证方法

平安银行IT笔试题深度解析与工程化验证方法

简介:本资源为平安银行IT岗位招聘笔试真题及详解文档,面向计算机专业应届生与转行求职者,聚焦银行科技岗笔试核心能力考察——涵盖.NET平台原理、数据库系统设计、面向对象编程(C/Java)、数据结构与算法(堆…

2026/10/17 18:49:11 阅读更多 →
从三国杀攻略App看OpenHarmony上的Flutter长列表优化

从三国杀攻略App看OpenHarmony上的Flutter长列表优化

先说点实际的。前段时间我在业余时间做了一个三国杀攻略App,目标平台里明确包含OpenHarmony,技术栈选了Flutter。说实话,最初让我心里没底的不是业务逻辑,而是性能:武将列表、卡牌图鉴这种内容本身就是“长列表 高密度…

2026/10/17 18:49:11 阅读更多 →
Linux线程控制实战:同步互斥、生命周期与线程池构建

Linux线程控制实战:同步互斥、生命周期与线程池构建

做Linux服务端开发这些年,我发现自己对Linux线程控制的认知分了好几个阶段。最开始觉得线程控制无非就是pthread_create、pthread_join、pthread_mutex_lock这一套API,能跑起来就行;后来开始管线程池、处理并发任务,才发现线程控制…

2026/10/17 18:49:11 阅读更多 →

最新新闻

三相电信号采集电路设计:从互感器选型到ADC同步采样与相位校准

三相电信号采集电路设计:从互感器选型到ADC同步采样与相位校准

简介:《三相电信号采集电路设计》是一份面向电能质量监测、电力电子装置应用及供电系统运维等场景的技术资料,适合从事电网信号采集、嵌入式硬件设计的工程师与相关专业学生阅读。资源围绕三相电压电流信号的精密采集展开,涵盖互感器选型、频…

2026/10/17 19:27:40 阅读更多 →
SCAS与REPNE/REPE前缀全解:汇编字符串扫描的核心机制

SCAS与REPNE/REPE前缀全解:汇编字符串扫描的核心机制

写汇编的人都知道,字符串处理是这门语言最带劲的领域之一。而SCASB/SCASW这两条指令,配合REPNE/REPE重复前缀,能让你只用一条指令就把“在内存里找个字符 / 找个值 / 找到某个不匹配的位置”这种循环给干完。说实话,当年我第一次在…

2026/10/17 19:27:40 阅读更多 →
用友NC65安装全流程:Oracle表空间与数据源配置实战

用友NC65安装全流程:Oracle表空间与数据源配置实战

简介:这是一份面向用友NC65及NCC高版本实施顾问的完整安装操作手册,专为自学搭建测试环境的新手设计,能解决官网资料零散、上手门槛高的问题。资源为单个doc文档,压缩包仅933KB,便于携带和查阅,内容覆盖从O…

2026/10/17 19:27:40 阅读更多 →
SQL Server 2008误删恢复:简单模式下无备份数据抢救方案

SQL Server 2008误删恢复:简单模式下无备份数据抢救方案

简介:本资源是一份面向SQL Server数据库管理员与运维工程师的实战型数据恢复指南,聚焦SQL Server 2008环境下误删除数据的紧急抢救方案。内容系统梳理了基于事务日志恢复的三大典型场景:当具备完整备份且恢复模式为“完全(Full&am…

2026/10/17 19:27:40 阅读更多 →
DeepSeek Harness插件机制详解:从安装配置到开发实战

DeepSeek Harness插件机制详解:从安装配置到开发实战

1. 插件机制到底解决了什么问题1.1 从“一个能跑的壳”到“一个能干活的工具”DeepSeek Harness(后面我统一叫 dsh)刚装好的时候,它本质上就是一个能加载模型、能对话、能读本地文件的命令行壳子。你问它问题它能答,你让它读个文件…

2026/10/17 19:27:40 阅读更多 →
2026年最新全球AI大模型深度研究报告:用TaoToken统一Key实测主流模型能力边界

2026年最新全球AI大模型深度研究报告:用TaoToken统一Key实测主流模型能力边界

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

2026/10/17 19:26:40 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/16 21:35:51 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/17 1:44:59 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

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

2026/10/16 21:54:38 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

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

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

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

2026/10/16 14:23:36 阅读更多 →