根据之前的条目增加数据

时间:2013-07-02 20:54:29

标签: mysql mysqli

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

我无法想象的是我如何将数据插入数据库,因此offer_nr从之前的company_id增量增加+1?

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

2 个答案:

答案 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 updateafter delete个触发器。

另一种方法是在查询时分配值。您通常会使用变量来保持和增加计数。

答案 1 :(得分:-1)

不要这样做。

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

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