【发布时间】:2016-08-08 09:09:28
【问题描述】:
我之前从未在触发器中使用过循环,我有如下 3 个表:
表 1
1_pk |user |tenant| filter
----------------------------------
| 1 | all | 1 | O
| 2 | john | 1 | AA
| 3 | peter | 1 | AB
| 4 | pat | 1 | AC
| 5 | all | 2 | O
| 6 | tony | 2 | AA
| 7 | jim | 2 | AB
表 2
2_pk |table1-FK|role | tenant
----------------------------------
| 1 | 1 | HR | 1
| 2 | 2 | staff | 1
| 3 | 2 | ceo | 1
| 4 | 5 | staff | 2
表 3
3_pk |table1-FK|table2-FK| tenant
----------------------------------
| 1 | 2 | 1 | 1
| 2 | 3 | 1 | 1
| 3 | 4 | 1 | 1
| 4 | 2 | 2 | 1
| 5 | 2 | 3 | 1
| 3 | 6 | 4 | 2
| 4 | 7 | 4 | 2
我想在表 2 上创建一个触发器,以便
当在 table2 上创建记录时 table1_Fk 为 1 或 5(例如:请参阅表 2),那么触发器必须插入 3 条记录(如果 table1_Fk = 1)或 2 条记录(如果 table1_Fk = 5 ) 记入表 3。 换句话说,如果 filter column(table 1) = 'O' 那么触发器必须为该特定租户将 X 行插入到表 3 中。
如果在 table2 上创建了一条记录,其中 table1_Fk 为 2、3、4、6 或 7(例如:请参阅表 2),则触发器只需将 1 条记录插入到表 3 中。
有没有办法可以在此触发器中使用循环,因为我不知道每个租户在 表 1 中有多少条记录。
谢谢
【问题讨论】:
-
我不知道您的系统何时将多少数据插入表 3。您能否让您的示例更具体并显示应插入哪些值?
-
@Philipp- 在表 2 和表 3 中添加了更多数据,希望它能解释。谢谢。