如何在一对列上设置索引以便将值绑定在一起?
我有一个包含 id、external_id 和 Country_code 列的表。我希望数据库强制执行两条规则:
- 每个外部 ID 只能在每个国家/地区代码中出现一次
- 每个 ID 最多只能与一个非空外部 ID 一起出现,反之亦然。
第一条规则很简单 - 我向 external_id 和 Country_code 添加了一个唯一的多列索引。我如何让它强加第二个?
I have a table with id, external_id and country_code columns. I have two rules which I want the database to impose:
- Each External ID can only appear once per country code
- Each ID can only appear with at most one non-null External ID, and vice versa.
The first rule is easy enough - I add a unique multi-column index to external_id and country_code. How do I get it to impose the second?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我不确定我是否完全理解第二个约束,但在这种情况下,与 INSERT 和 UPDATE 事件相关的触发器似乎可以解决您的问题。
I'm not sure I understand the second constraint exactly, but in this case it looks like a trigger tied to INSERT and UPDATE events would solve your problem.
如果您说 externalid 只能链接到单个 id,那么听起来您的 externalid 也应该有一个唯一的索引。
It sounds almost like your externalid should have a unique index too, if your saying that an externalid can only link to a single id.