postgresql 仅对特定值添加基于另一列的列约束

eh57zj3b  于 2023-04-29  发布在  PostgreSQL
关注(0)|答案(1)|浏览(110)

我有一个名为products的SQL表,看起来像这样:
| p_id|p_name|
| --------------|--------------|
| SS 100型|烟熏三文鱼100 g|
| 公司简介|炸虾仁50 g|
| 公司简介|芝士通心粉400 g|
| 公司简介|烟熏三文鱼300 g|
我需要添加一个约束,以便如果p_name以Smoked salmon开头,那么p_id必须以SS开头。
我试着用这个:CONSTRAINT my_constraint CHECK(p_id LIKE 'SS%' AND p_name LIKE 'Smoked salmon %');但这不起作用,因为p_id和p_name具有不同的值。
先谢谢你了。

w7t8yxp5

w7t8yxp51#

您可以将OR条件添加到约束中,如下所示:

CONSTRAINT my_constraint CHECK (p_name LIKE 'Smoked salmon%' AND p_id LIKE 'SS%'
                                OR p_name NOT LIKE 'Smoked salmon%');

相关问题