0

你将如何制作这种数据库。我的系统拥有一个数据库,其中包含多个为客户提供报价的用户(公司)。

我想不通的是如何将数据插入数据库,以便 offer_nr 从之前的 company_id 增量增加 +1?

+----+--------- +------------+----------+
| offer_id (AI) | company_id | offer_nr | 
+----------+----------+----------+
|  1            | 1001       | 10022    |
|  2            | 1002       | 150      |
|  3            | 1001       | 10023    |
|  4            | 1002       | 151
+----+------------+----------+----------+
4

2 回答 2

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

另一种选择是在查询时分配值。您通常会使用一个变量来保存和增加计数。

于 2013-07-02T21:02:30.630 回答
-1

不要这样。

具有自动递增的公司 ID 以及独立的订单 ID。
这就是它的工作原理。

数据库中没有“数字”之类的东西。数字仅在选择时出现。

于 2013-07-02T20:56:40.440 回答