You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于主键引用限制Table_1的IsDeletedValue修改及查询方案

问题与解决方案

数据表结构

Table_1

PK ID_Table1IsDeletedValue
10
20
30
40

Table_2

PK ID_Table2SomeValueID_reference_from_table_1IsDeletedValue
1Text110
2Text221
3Text330
4Text431

需求

需要编写一条返回true或false的SELECT语句,判断Table_1中指定ID(记为n)对应的IsDeletedValue是否无法修改——即该ID在Table_2中存在引用行且该行的IsDeletedValue为0。

解决方案

使用EXISTS子查询实现需求,SQL语句如下:

SELECT EXISTS (
    SELECT 1
    FROM Table_2
    WHERE ID_reference_from_table_1 = n
      AND IsDeletedValue = 0
) AS CannotModify;

逻辑解释

  • EXISTS关键字用于检查子查询是否返回至少一行数据:
    1. 子查询筛选出Table_2中引用Table_1指定ID n且自身IsDeletedValue为0的行
    2. 如果存在这样的行,EXISTS返回true,表示Table_1对应行的IsDeletedValue无法修改;反之返回false,表示可以修改

示例验证

结合题目给出的数据,测试不同ID的结果:

  • 当n=1:Table_2存在引用ID=1且IsDeletedValue=0的行,返回true(无法修改)
  • 当n=2:Table_2中引用ID=2的行IsDeletedValue均为1,返回false(可以修改)
  • 当n=3:Table_2存在引用ID=3且IsDeletedValue=0的行,返回true(无法修改)
  • 当n=4:Table_2无引用ID=4的行,返回false(可以修改)

内容的提问来源于stack exchange,提问作者Little Timmy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 21:01:11