如果文件名列不是唯一的,则可以在
product_attachment表上添加自定义约束。请注意,这将在每次插入和更新时执行以下查询,这并不是理想的性能。
CREATE OR REPLACe FUNCTION check_filename(product_id integer, file_id integer)RETURNS boolean AS$$ LOCK product_attachment IN SHARE MODE; SELECT (COUNT(*) = 0) FROM product_attachment pa JOIN file f1 ON f1.file_id = pa.file_id JOIN file f2 ON f1.filename = f2.filename WHERe pa.product_id = AND f2.file_id = $$LANGUAGE 'plpgsql'ALTER TABLE product_attachmentADD ConSTRAINT check_filename CHECK(check_filename(product_id, file_id))
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)