栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

我如何有一个引用另一个表的检查约束?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

我如何有一个引用另一个表的检查约束?

添加一列tblItem.ItemType列。此列在任何给定的行上只能有一个值(显然)。在ItemID,ItemType上添加唯一约束。

现在的诀窍是:很少有人记住这一点,但是外键可以引用唯一约束的列。

CREATE TABLE tblItem (  ItemID INT PRIMARY KEY,  ItemType CHAr(1),  UNIQUE KEY (ItemID, ItemType));CREATE TABLE tblGoodItem (  ItemID INT PRIMARY KEY,  ItemType CHAr(1),  CHECK (ItemType='G')  FOREIGN KEY (ItemID, ItemType) REFERENCES tblItem(ItemID, ItemType) );CREATE TABLE tblBadItem (  ItemID INT PRIMARY KEY  ItemType CHAr(1),  CHECK (ItemType='B')  FOREIGN KEY (ItemID, ItemType) REFERENCES tblItem(ItemID, ItemType) );

如果将每个子表中的ItemType约束为固定值,则tblItem中的给定行只能由一个子表引用。

但是,将项目从好更改为坏的过程分为三个步骤:

  1. 从tblGoodItem删除行
  2. 在tblItem中更新行的ItemType
  3. 在tblBadItem中插入行


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/612322.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号