为 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
.
大家好,我为数据库创建了这个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
.