2

这基本上就是我的数据库的样子

身份证 | 后裔 | 父亲| 高分辨率照片| CLIPARTO 母亲
---------------------------------
1 个
2 YAB

字母 X、Y、Z、A、B 代表一些代码或数字

例如,如果我在第 1 行(ID = 1)将代码 Y 更改为 R,我想将我有代码 Y 的每个字段更改为代码 R,反之亦然,如果我在第 2 行将 Y 更改为 R,那么将自动更改第 1 行的 Y 到 R

最重要的是,如果将某些代码更改为另一个代码,例如我将 Y 更改为 R 或 G 等等,数据库中具有代码 Y 的每条记录都应更改为 R 或 G。

我可以用触发器做到这一点。或者还有什么其他方法可以使用。(我的用户可以通过我的 C# 应用程序更改记录)

4

2 回答 2

1

使用这样的触发器,每个字段一个:

CREATE TRIGGER update_descendant
AFTER UPDATE OF descendant ON MyTable
BEGIN
    UPDATE MyTable SET descendant = NEW.descendant WHERE descendant = OLD.descendant;
    UPDATE MyTable SET father     = NEW.descendant WHERE father     = OLD.descendant;
    UPDATE MyTable SET mother     = NEW.descendant WHERE mother     = OLD.descendant;
END;

(如果该descendant列是唯一的,则不需要更新它。)

于 2012-11-30T11:22:31.333 回答
0

使用此基表上的触发器,您可能会得到一个突变。这可能由另一个具有映射的表控制。

与此类似:

map_table
-------------
original_val
new_val

然后您将 X 填写为原始表格,将 R 填写为新表格,那么就可以使用此插入来修复您的原始表格。

于 2012-11-29T23:20:28.067 回答