首页 > 解决方案 > 我不能在触发器更新 mysql 中删除数据联合吗?

问题描述

您好,我在 mysql 中有一个名为example的表,其下一个字段a、b、c al 字段是 varchar 255,并且每列唯一。

我在插入之前使用触发器执行的每列的唯一限制;

表格示例:

------------
a    b    c     
------------
a         c
     b
d    e
f         g
     h
          i
j
          k
     l    n
c
     a

该表没问题,因为每列中的所有值都是唯一的例外,即“”

wrog表的一个例子

------------
a    b    c     
------------
a    b    c
     b

该表是错误的,因为字段 b 在两列中具有相同的值

我希望能够做下一个

我希望能够建立一个尊重值是唯一的行的联合

示例:将 ('a', '', 'c') 与 ('', 'b', '') 合并并得到 ('a', 'b', 'c')

------------
a    b    c     
------------
a    b     c
d    e
f         g
     h
          i
j
          k
     l    n
c
     a

请注意 ('', 'b', '') 已被删除。

合并('j','a','i')

------------
a    b    c     
------------
a         c
     b
d    e
f         g
     h
j    a    i
          k
     l    n
c

我不需要合并 ecample ('', 'l','n') 和 ('','h','') 因为'a 字段为空' 但我需要合并 (j, a, i) 和('','h','') 并得到

------------
a    b    c     
------------
a         c
     b
d    e
f         g
j    h    i
          k
     l    n
c

我正在尝试使用触发器和 nex 逻辑来执行此操作

如果'b'改变了删除'b'的另一个外观如果'c'改变了删除'c'的另一个外观

但我不能做这些,因为我不能执行删除到 mysql 触发器,任何其他想法。

我的目标是在数据库中执行逻辑,如果我必须调用一个过程,则阻止表上的更新,使其符合所有唯一行的限制

标签: mysql

解决方案


推荐阅读