我有一张名为内容的表格,其中包含特定化学式的成分。如所怀疑的,如果成分以错误的顺序添加到配方中,则配方不成功。 所以,请考虑我有六个字段:
id | formula_id | ingredient_id |数量| item_id | add_id
其中:
id = the PK and primary index
formula_id = a repeating integer depending on the id of the formula
ingredient_id = the PK from the "ingredients" table
quantity = self-explanatory
item_id = the UNIQUE one-based item id of that ingredient as it pertains to the formula
add_id = the UNIQUE zero-based index of the order in which this ingredient is added to the formula
因此,当我修改公式和添加成分时,我想确保item_id和add_id都是由mySQL而不是PHP代码处理的增量整数,并且以后可以修改它们的方式(如果需要调整添加成分的顺序)。
由于我找不到一个体面的TRIGGER写作教程,也没有关于有三个AUTO-INC字段的任何内容,其中两个只根据“formula_id”增加,我来这里寻求你的帮助。
答案 0 :(得分:0)
经过一些反复试验后,我发现我的术语更多是不正确的方法论。我本来应该寻找的是一种基于其他领域创建UNIQUE INDEX
的方法。
因此,我的问题的解决方案如下:
ALTER TABLE `chem`.`formulas`
DROP INDEX `item_id`,
DROP INDEX `add_id`,
ADD UNIQUE INDEX `item_id` (`id`, `formula_id`, `ingredient_id`),
ADD UNIQUE INDEX `add_id` (`id`, `formula_id`, `ingredient_id`);