【问题标题】:Is there a standard method to have unique values in SQL table per parent record是否有标准方法在每个父记录的 SQL 表中具有唯一值
【发布时间】:2022-01-05 13:59:18
【问题描述】:

我想做的是让 SQL 维护我的数据的完整性,而不是通过我的应用程序来维护。我希望 SQL 不会让我添加重复的项目每个价目表

如果我有 3 个表“PriceList”、“Prices”和“InventoryItems”

价格表: ID、名称

InventoryItem: ID、SKU、名称

价格: ID、ListID、ItemID、价格

我不能在 price.itemid 上设置唯一值,因为这不允许我将相同的商品添加到多个价目表中。

ID ListID ItemID Price
1 1 106 25.35
2 1 122 45.85
3 1 122 33.24
4 1 136 86.33

在上面的示例中,我希望有一个约束来阻止添加第 3 行上的项目,因为已经有一个 itemID 122 链接到 ListID 1

这可以通过关系/索引或其他方法在 SQL 中完成吗?

【问题讨论】:

  • 你的意思是UNIQUE CONSTRAINT
  • 将其添加为唯一索引? google.com/…
  • 另一种选择是将 ListID、ItemID 设为复合主键并删除 ID 列代理键。

标签: sql sql-server database


【解决方案1】:

您可以创建UNIQUE 约束,如下所示:

alter table my_table
add constraint uq1 unique (ListID, ItemID);

【讨论】:

    猜你喜欢
    • 2013-08-03
    • 2020-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 2016-06-07
    相关资源
    最近更新 更多