为 sql 中的两列插入约束

Insert a constraint for two columns in sql

大家好,我为数据库创建了这个table

CREATE TABLE IF NOT EXISTS compositions (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        id_product INTEGER REFERENCES products(id),
        id_receipt INTEGER REFERENCES receipt(id),
        quantity INTEGER NOT NULL,
        price FLOAT NOT NULL,
        id_user VARCHAR REFERENCES users(id),
        CONSTRAINT CHK_price_quantity CHECK (price > 0 AND quantity > 0)
    );

我想插入一个约束,对于给定的 id_receipt,id_user 必须始终相同,但我不知道如何实现它。 有人可以帮忙吗?

提前致谢。

对于此要求,不应在 table compositions 中定义列 id_user

将它存储在 table receipt 中更有意义,因为每个 id_receipt 与 1 个相关且仅与 1 个 id_user.
相关

这样您就可以将 id_receipt 作为 compositions 中的外键,并且通过此列您可以(通过连接)从 receipt 中获取所需的所有信息,例如id_user.