如何在数据库中创建连续字段

时间:2015-07-28 11:47:44

标签: mysql sql

我正在尝试在我的数据库中创建一个表名“title”,其中有两个名为“lower_bound”和“upper_bound”的字段。我想在其上创建一个触发器,例如在尝试添加连续范围时,会自动将其附加到上一行。例如,考虑我们在此表中有两行,如下所示:

id | lower_bound | upper_bound
------------------------------
1  | 10          | 20
------------------------------
2  | 50          | 70
------------------------------

我想要的是,如果我插入一个包含以下值的行:

lower_bound = 21
upper_bound = 30

我没有插入此行,而是将其附加到第一行并更新其字段,如下所示:

id | lower_bound | upper_bound
------------------------------
1  | 10          | 30
------------------------------
2  | 50          | 70
------------------------------

触发器可以实现吗?

我的解决方案是我使用BEFORE INSERT触发器并执行我的需求检查,如果它是可更新的,那么我更新我的行。

有两个问题:

  1. 我不能在不引发错误的情况下取消插入过程。
  2. 我无法将插入的行ID的值更改为更新的行ID。

1 个答案:

答案 0 :(得分:1)

您可以更改架构吗?实现两个表:low_bound和high_bound通过键相互引用。在两个表的连接上创建实例化视图。在实现视图的物化视图上创建一个before insert触发器,并根据需要更新low_bound和high_bound。