我有两张table
表格_1
| 药代动力学ID_表1|是已删除值|
| - -|- -|
| 一个|第0页|
| 2个|第0页|
| 三个|第0页|
| 四个|第0页|
表格_2
| 药代动力学ID_表2|某些值|表1中的ID引用|是已删除值|
| - -|- -|- -|- -|
| 一个|文字1|一个|第0页|
| 2个|文字2| 2个|一个|
| 三个|文字3|三个|第0页|
| 四个|文本4|三个|一个|
现在,我想在“Table 1”上设置一个约束,以防止基于以下两点更改“IsDeletedValue”:
1.如果“表2”中引用了ID,则“表1”中的“IsDeletedValue”无法更改
1.如果引用“表1”的行将“IsDeletedValue”设置为“0”,则无法更改“表1”中的“IsDeletedValue”
因此,在我的方案中,如果我尝试将“Table 1”中所有行的“IsDeletedValue”值设置为“1”,则会发生以下情况
第1行-保持为“0”-由于其PK在“ID_reference_from_table_1”下被引用,并且在同一行中,“IsDeletedValue”未设置为1
行2 -更改为“1”-是,其PK在“表2”中引用,但引用它的唯一行将其自身的“IsDeletedValue”设置为“1”
行3 -保持为“0”-它被引用了2次,但由于并非所有引用它的行都将其“IsDeletedValue”设置为“1”,因此它不会更改
第4行-更改为“1”-在“表2”中未引用,因此没有任何内容可阻止其更改
EDIT:由于有人告诉我无法完成此操作,因此我如何编写一个选择语句(返回“true”或“false”),以查看ID_Table1(n)是否用于“Table 2”中“IsDeletedValue”为0的行(也称为“Table 1”中“IsDeletedValue”的值无法更改)
1条答案
按热度按时间szqfcxe21#
通过检查以下选择是否返回任何结果进行修复:
并且我发送?作为Table_1中的参数ID,以了解正在编辑的行