我正在处理与餐馆菜单有关的网络应用程序。我使用node作为后端,sqlite3使用数据库系统。在我的'项目'表我有一个名为条形码的字段,当然是唯一的,但用户可以输入一些额外的条形码"。我需要的是一种使条形码字段和extra_barcodes字段在彼此之间唯一的方法。
答案 0 :(得分:0)
为了防止在多列中出现相同的值,您不能使用CHECK约束(因为那里不允许使用子查询),因此您必须使用触发器:
CREATE TRIGGER barcode_unique_insert
AFTER INSERT ON items
BEGIN
SELECT RAISE(FAIL, "duplicate barcode")
FROM items
WHERE extra_barcode = NEW.barcode
OR extra2_barcode = NEW.barcode;
END;
将条形码存储在具有1:N关系的单独表格中可能更好。