`
jackleechina
  • 浏览: 587209 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类

外键约束 foreign key constraint

    博客分类:
  • sql
 
阅读更多
如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表。外键是用来实现参照完整性的。

比如说:
create table t_group (   
    id int not null,   
    name varchar(30),   
    primary key (id)   
);  

insert into t_group values (1, 'Group1');   
insert into t_group values (2, 'Group2');

create table t_user (   
    id int not null,   
    name varchar(30),   
    groupid int,   
    primary key (id),   
    foreign key (groupid) references t_group(id) on delete cascade on update cascade  
);  

insert into t_user values (1, 'qianxin', 1); --可以插入   
insert into t_user values (2, 'yiyu', 2);    --可以插入   
insert into t_user values (3, 'dai', 3);    --错误,无法插入,用户组3不存在,与参照完整性约束不符 

insert into t_user values (1, 'qianxin', 1);   
insert into t_user values (2, 'yiyu', 2);   
insert into t_user values (3, 'dai', 2);   
delete from t_group where id=2;              --导致t_user中的2、3记录级联删除   
update t_group set id=2 where id=1;          --导致t_user中的1记录的groupid级联修改为2 
  
 -------------------虽然很基础,但这篇文章讲的很好很清楚----------------
分享到:
评论

相关推荐

    MySQL删除表的时候忽略外键约束的简单实现

    为了解决这个问题,我们可以利用MySQL中的一个系统变量`FOREIGN_KEY_CHECKS`来临时禁用外键约束检查。 首先,你可以通过以下SQL查询生成所有表的DROP语句,只需将`MyDatabaseName`替换为你的实际数据库名: ```sql...

    MySQL的约束-外键约束

    本文将深入探讨其中的一种约束类型——外键约束(Foreign Key Constraint),它是关系数据库模型中的核心概念,用于建立和维护不同表之间的关联。 外键约束允许一个表中的数据引用另一个表中的数据,这种引用关系...

    Oracle定义约束 外键约束

    ### Oracle定义约束:外键约束详解 #### 一、引言 在数据库设计与管理过程中,维护数据的一致性和完整性是非常重要的。Oracle数据库系统提供了一系列的机制来帮助开发者和管理员达到这一目标,其中最重要的机制之一...

    sql外键约束

    ADD CONSTRAINT constraint_name FOREIGN KEY (child_column) REFERENCES parent_table(parent_column); ``` 这里的`child_table`是包含外键的表,`parent_table`是被引用的表,`child_column`是`child_table`中的...

    MLDN魔乐科技_Oracle课堂18_外键约束

    3. 使用DDL(Data Definition Language)语句:如`ALTER TABLE child_table ADD CONSTRAINT fk_name FOREIGN KEY (fk_column) REFERENCES parent_table (pk_column)`,其中child_table是子表,parent_table是父表,...

    MySQL外键约束常见操作方法示例【查看、添加、修改、删除】

    在MySQL数据库中,外键约束是关系型数据库中用于维护数据完整性和一致性的重要工具。它确保了一张表中的数据与另一张表的数据之间的关联性,通常用于实现一对一、一对多或多对多的关系。本篇文章将详细讲解如何进行...

    数据一致性守护者:MySQL外键约束深度解析

    ### 数据一致性守护者:MySQL 外键约束深度解析 #### 引言 在现代软件开发中,特别是Web应用程序领域,数据库扮演着极其重要的角色。其中MySQL作为一种流行的关系型数据库管理系统(RDBMS),因其开放源代码特性、...

    MLDN魔乐科技JAVA培训_Oracle课堂18_外键约束.rar

    在这个例子中,`child_table`是子表的名称,`fk_constraint_name`是你为外键约束自定义的名称,`child_column`是子表中引用父表主键的列,`parent_table`是父表的名称,而`parent_column`是父表的主键列。...

    mysql外键(Foreign Key)介绍和创建外键的方法

    - `FOREIGN KEY [id]`:定义外键约束,`id`是可选的外键标识符。 - `(index_col_name, …)`:列出被引用的列名。 - `REFERENCES tbl_name (index_col_name, …)`:指定参照表的名称和列名。 - `ON DELETE` 和 `ON ...

    数据库技术与应用 外键约束-D习题与作业.doc

    在数据库技术中,外键约束是一项至关重要的概念,它确保了数据的一致性和完整性,是关系数据库模型中的关键组成部分。本篇将详细讲解外键约束的含义、作用以及如何在实际应用中设置。 首先,外键(Foreign Key,...

    MySQL添加外键时报错:1215 Cannot add the foreign key constraint的解决方法

    然而,在尝试添加外键约束时,可能会遇到错误1215:“Cannot add the foreign key constraint”。这个错误通常意味着在创建外键时,数据库系统检测到一些条件未满足,导致外键无法成功添加。 在本例中,我们有两个...

    MySQL删除有外键约束的表数据方法介绍

    外键约束(Foreign Key Constraint)是关系数据库设计中的关键概念,它确保了一个表中的数据引用另一个表中的有效数据。当试图删除一个被其他表的外键引用的行时,MySQL会抛出错误[Err] 1451,提示“Cannot delete ...

    MySQL 关闭子表的外键约束检察方法

    为了在MySQL中关闭外键约束检查,我们可以使用`SET FOREIGN_KEY_CHECKS`语句。这条语句接受一个布尔值参数,0表示关闭检查,1表示开启检查。以下是关闭外键约束检查的步骤: 1. 首先,我们创建两个表,`teachers`和...

    mysql外键的添加与删除参考.pdf

    ALTER TABLE ss_accesscode DROP FOREIGN KEY 外键约束名称; ``` 例如,要删除名为`FK_SS_ASC_VCC`的外键约束,可以使用以下语句: ``` ALTER TABLE ss_accesscode DROP FOREIGN KEY FK_SS_ASC_VCC; ``` 查看外键...

    MariaDB数据库的外键约束实例详解

    CONSTRAINT [约束名称] FOREIGN KEY [外键字段] REFERENCES [外键表名](外键字段[, 外键字段2...]) [ON DELETE CASCADE] [ON UPDATE CASCADE] ); ``` 或者使用简化的语法: ```sql FOREIGN KEY [当前表的字段] ...

    sql外键的建立文档

    add constraint fk_b foreign key (a_num) references A (a_num); ``` 或者,如果你不想自定义约束名称,可以简化为: ```sql alter table myTB1 add foreign key (id) references myTB(id); ``` 这样,...

    在Oracle数据库中添加外键约束的方法详解

    在Oracle数据库中,外键约束是确保数据完整性和一致性的重要机制。它定义了一个表中的一个或多个列(称为外键)的值必须匹配另一个表(称为参照表)中某些行的值,以此来维护两个表之间的关系。这有助于保证两个表...

Global site tag (gtag.js) - Google Analytics