你会如何制作这种数据库?我的系统拥有一个数据库,其中有多个用户(公司)为客户提供报价。
我无法想象的是我如何将数据插入数据库,因此offer_nr从之前的company_id增量增加+1?
+----+--------- +------------+----------+
| offer_id (AI) | company_id | offer_nr |
+----------+----------+----------+
| 1 | 1001 | 10022 |
| 2 | 1002 | 150 |
| 3 | 1001 | 10023 |
| 4 | 1002 | 151
+----+------------+----------+----------+
答案 0 :(得分:0)
您可以使用更新前触发器执行此操作。您可以使用此类触发器根据历史值分配offer_nr
的值。关键代码是:
new.offer_nr = (select coalesce(1+max(offer_nr), 1)
from offers o
where o.company_id = new.company_id
)
如果您希望按顺序保留值,可能还需要before update
和after delete
个触发器。
另一种方法是在查询时分配值。您通常会使用变量来保持和增加计数。
答案 1 :(得分:-1)
不要这样做。
自动增加公司ID以及独立订单ID 这就是它的工作原理。
数据库中没有“数字”这样的东西。数字仅在选择时出现。