多个唯一列sqlite3

时间:2017-04-28 12:31:22

标签: node.js sqlite

我正在处理与餐馆菜单有关的网络应用程序。我使用node作为后端,sqlite3使用数据库系统。在我的'项目'表我有一个名为条形码的字段,当然是唯一的,但用户可以输入一些额外的条形码"。我需要的是一种使条形码字段和extra_barcodes字段在彼此之间唯一的方法。

1 个答案:

答案 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关系的单独表格中可能更好。