数据库中的外键约束
SQL>descproductinfo名称是否为空?类型---------------------------------------------------------...
SQL> desc productinfo
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
PRODUCTID VARCHAR2(10)
PRODUCTNAME VARCHAR2(20)
PRODUCTPRICE NUMBER(8,2)
QUANTITY NUMBER(10)
CATEGORY VARCHAR2(10)
DESPERATION VARCHAR2(1000)
ORIGIN VARCHAR2(10)
QIANGGE VARCHAR2(10)
SQL> desc categoryinfo
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
CATEGORYID VARCHAR2(10)
CATEGORYNAME VARCHAR2(30)
SQL> alter table productinfo
2 add constraints dd foreign key (category) references categoryinfo(categoryid) on delete cascade;
add constraints dd foreign key (category) references categoryinfo(categoryid) on delete cascade
*
第 2 行出现错误:
ORA-02270: 此列列表的唯一关键字或主键不匹配
这是怎么回事求大神解答! 展开
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
PRODUCTID VARCHAR2(10)
PRODUCTNAME VARCHAR2(20)
PRODUCTPRICE NUMBER(8,2)
QUANTITY NUMBER(10)
CATEGORY VARCHAR2(10)
DESPERATION VARCHAR2(1000)
ORIGIN VARCHAR2(10)
QIANGGE VARCHAR2(10)
SQL> desc categoryinfo
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
CATEGORYID VARCHAR2(10)
CATEGORYNAME VARCHAR2(30)
SQL> alter table productinfo
2 add constraints dd foreign key (category) references categoryinfo(categoryid) on delete cascade;
add constraints dd foreign key (category) references categoryinfo(categoryid) on delete cascade
*
第 2 行出现错误:
ORA-02270: 此列列表的唯一关键字或主键不匹配
这是怎么回事求大神解答! 展开
2个回答
2015-11-25
展开全部
外键是该表是另一个表之间联接的字段
外键必须为另一个表中的主键
外键的用途是确保数据的完整性。它通常包括以下几种:
实体完整性,确保每个实体是唯一的(通过主键来实施)
域完整性,确保属性值只从一套特定可选的集合里选择
关联完整性,确保每个外键或是NULL(如果允许的话)或含有与相关主键值相配的值
例子:
表A 字典表, 表B 业务表。
外键应建立在表B 上 。
1、表B 的字典项目的代码只能是表A 中代码内容。
2、表B 可以无条件删除记录。
3、表A 在删除的时候,将根据外键的规则,判断表B 中是否使用了要删除数据的代码,如果有引用,则不能删除。
ORACLE 如何建立表外键
例:学生表student (id, name , sex )
成绩表score (id ,math )
如何创建表,要求 有主键,有约束 解: CREATE TABLE STUDENT(ID CHAR(10), NAME VARCHAR(8),SEX CHAR(1));
ALTER TABLE STUDENT ADD CONSTRAINT PK_STUDENT PRIMARY KEY(ID);
CREATE TABLE SCORE( ID CHAR(10),MATH NUMBER(5,2));
ALTER TABLE SCORE ADD CONSTRAINT FK_SCROE FOREIGN KEY(ID) REFERENCES STUDENT(ID);
* 主键与外键: 键是表中的列(可以是一列,也可以是几列),主键用于唯一的标识表中的数据项;外键用于连接父表和子表。而所谓的父表和子表是根据3NF 范式的要求,为了消除传递依赖,将原表拆成2个相互关联的表,而这个关联就是外键。
外键必须为另一个表中的主键
外键的用途是确保数据的完整性。它通常包括以下几种:
实体完整性,确保每个实体是唯一的(通过主键来实施)
域完整性,确保属性值只从一套特定可选的集合里选择
关联完整性,确保每个外键或是NULL(如果允许的话)或含有与相关主键值相配的值
例子:
表A 字典表, 表B 业务表。
外键应建立在表B 上 。
1、表B 的字典项目的代码只能是表A 中代码内容。
2、表B 可以无条件删除记录。
3、表A 在删除的时候,将根据外键的规则,判断表B 中是否使用了要删除数据的代码,如果有引用,则不能删除。
ORACLE 如何建立表外键
例:学生表student (id, name , sex )
成绩表score (id ,math )
如何创建表,要求 有主键,有约束 解: CREATE TABLE STUDENT(ID CHAR(10), NAME VARCHAR(8),SEX CHAR(1));
ALTER TABLE STUDENT ADD CONSTRAINT PK_STUDENT PRIMARY KEY(ID);
CREATE TABLE SCORE( ID CHAR(10),MATH NUMBER(5,2));
ALTER TABLE SCORE ADD CONSTRAINT FK_SCROE FOREIGN KEY(ID) REFERENCES STUDENT(ID);
* 主键与外键: 键是表中的列(可以是一列,也可以是几列),主键用于唯一的标识表中的数据项;外键用于连接父表和子表。而所谓的父表和子表是根据3NF 范式的要求,为了消除传递依赖,将原表拆成2个相互关联的表,而这个关联就是外键。
迈杰
2024-11-30 广告
2024-11-30 广告
RNA-seq数据分析是转录组研究的核心,包括数据预处理、序列比对、定量分析、差异表达分析、功能注释和可视化等步骤。数据预处理主要是质量控制和去除低质量序列。序列比对使用HISAT2、STAR等工具将reads比对到参考基因组。定量分析评估...
点击进入详情页
本回答由迈杰提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |