我正在尝试在MySql中创建自定义序列来跟踪表中的记录。
所以我有一张名为FOOD_ITEM
的表来跟踪食物的营养数据。每个FOOD_ITEM
记录都有ID
列(自动递增的主键),EMAIL
(由谁创建),NAME
,SERVING_AMOUNT
,SERVING_SIZE
,然后是营养数据,如CALORIES
和PROTEIN
。
我有一个像这样的唯一键集:
ALTER TABLE FOOD_ITEM
ADD CONSTRAINT FOOD_ITEM_UK_EMAIL_NAME_SERVING
UNIQUE (EMAIL, NAME, SERVING_AMOUNT, SERVING_SIZE);
因此,用户不能拥有相同的服务大小和数量的唯一命名食物。例如,他们不能有两个香蕉,其份量和数量为1盎司。它必须是1盎司,2盎司等的香蕉......
我正在尝试创建一个序列,只要为食物添加新的份量和/或数量,该序列就会生成唯一ID(我们称之为SERVING_ID
)。
因此,使用电子邮件user@user.com和食物香蕉的用户将分别使用香蕉1盎司,香蕉2盎司,香蕉5克等,SERVING_ID
分别为1,2,3等。
然后另一位用户iamauser@iamauser.com也可以使用香蕉1盎司,香蕉2盎司等,SERVING_ID
的1,2等。因此,当添加新EMAIL
和/或NAME
的新记录时,对于每个SERVING_SIZE
和SERVING_AMOUNT
,序列会递增1。
我该怎么做呢?