外键时,用constraint 外键名 foreign key .... 方便进行外键的删除.

若不定义,则可以:

先输入:alter table drop foreign key --&gt会提示出错.此时出错信息中,会显示foreign key的系统默认外键名.---&gt

用它去删除外键.

(4) 举例

实例一:

4.1

CREATE TABLE parent

(

id INT NOT NULL,

PRIMARY KEY (id)

) TYPE=INNODB; -- type=innodb 相当于 engine=innodb

CREATE TABLE child

(

id INT,

parent_id INT,

INDEX par_ind (parent_id),

FOREIGN KEY (parent_id) REFERENCES parent(id) ON DELETE CASCADE

)

TYPE=INNODB;

向parent插入数据后,向child插入数据,插入时,child中的parent_id的值只能是parent中有的数据,否则插入不成功;

删除parent记录时,child中的相应记录也会被删除;--&gt因为: on delete cascade

更新parent记录时,不给更新;--&gt因为没定义,默认采用restrict.

4.2

若child如下:

mysql&gt

create table child

(

id int not null primary key auto_increment,

parent_id int,

index par_ind (parent_id),

constraint fk_1 foreign key (parent_id) references

parent(id) on update cascade on delete restrict

)

type=innodb;

用上面的:

1).

则可以更新parent记录时,child中的相应记录也会被更新;--&gt因为: on update cascade

2).

不能是子表操作,影响父表.只能是父表影响子表.

3).

删除外键:

alter table child drop foreign key fk_1;

添加外键:

alter table child add constraint fk_1 foreign key (parent_id) references

parent(id) on update restrict on delete set null;

(5) 多个外键存在:

product_order表对其它两个表有外键。

一个外键引用一个product表中的双列索引。另一个引用在customer表中的单行索引:

CREATE TABLE product (category INT NOT NULL, id INT NOT NULL,

price DECIMAL,

PRIMARY KEY(category, id)) TYPE=INNODB;

CREATE TABLE customer (id INT NOT NULL,

PRIMARY KEY (id)) TYPE=INNODB;

CREATE TABLE product_order (

no INT NOT NULL AUTO_INCREMENT,

product_category INT NOT NULL,

product_id INT NOT NULL,

customer_id INT NOT NULL,

PRIMARY KEY(no),

-- 双外键

index(product_category, product_id),

foreign key(product_category, product_id)

references product(category, id)

on update cascade on delete restrict ,

-- 单外键

INDEX (customer_id),

FOREIGN KEY (customer_id)

REFERENCES customer(id)) TYPE=INNODB;

(6) 说明:

1.若不声明on update/delete,则默认是采用restrict方式.

2.对于外键约束,最好是采用: ON UPDATE CASCADE ON DELETE RESTRICT 的方式.

sql外键需要输入吗_sql_外键(foreignkey)相关推荐

  1. sql外键需要输入吗_SQL外键

    在本教程中,将学习SQL外键以及如何创建FOREIGN KEY约束以强制表之间的关系. 1. SQL外键约束简介 外键是一列或一组列,用于强制两个表中的数据之间的链接. 在外键引用中,第一个表的主键列 ...

  2. sql外键需要输入吗_关于sql:为什么在没有连接的情况下可以联接,为什么需要主-外键关系?...

    如果我们可以从两个表中获取数据而又没有主键和外键关系,那为什么我们需要这个规则? 你能用合适的例子清楚地解释我吗? 这是一个测试数据库,不要介意不良的结构. 表的结构: ** TABLE - 'tes ...

  3. 如何列出引用SQL Server中给定表的所有外键?

    我需要在SQL Server数据库中删除一个高度引用的表. 我如何获取要删除表需要删除的所有外键约束的列表? (与在Management Studio的GUI中单击相比,SQL的答案更好.) #1楼 ...

  4. mysql sql外键的作用_SQL的主键和外键的作用

    QL的主键和外键的作用: 外键取值规则:空值或参照的主键值. (1)插入非空值时,如果主键表中没有这个值,则不能插入. (2)更新时,不能改为主键表中没有的值. (3)删除主键表记录时,你可以在建外键 ...

  5. mysql 删除外键 sql语句_sql server ql语句删除外键和删除

    sql server ql语句删除外键和删除 alter table tablename add constraint ordersrelationship foreign key mployeeid ...

  6. SQL Sever 小技巧之解决外键约束(禁用、启用外键约束)

    SQL Sever 小技巧之解决外键约束(禁用.启用外键约束) 因为有外键约束的存在,在从表中,修改主表不存在的数据是不合法的;在主表中,删除从表中已存在的主表信息也是不合法的. 当然方法总比困难多, ...

  7. sql语句创建表的同时添加外键约束

    sql语句创建表的同时添加外键约束 题目 建立一个商店的数据库store,记录顾客及其购物情况,由下面三个表组成: 商品(商品号,商品名,单价,商品类别,供应商): 顾客(顾客号,姓名,住址): 订单 ...

  8. SQL 语句:不得使用外键与级联,一切外键概念必须在应用层解决

    阿里Java规范 [强制]不得使用外键与级联,一切外键概念必须在应用层解决. 说明:以学生和成绩的关系为例,学生表中的 student_id是主键,那么成绩表中的 student_id则为外键.如果更 ...

  9. mysql 命令行 外键_MySQL命令行MySql外键设置详解

    第一招.mysql服务的启动和停止 net stop mysql net start mysql 第二招.登陆mysql 语法如下: mysql -u用户名 -p用户密码 键入命令mysql -uro ...

  10. mysql主键和外键示例_SQL数据库中主键和外键的应用实例

    数据库 什么是数据库主键(Primary Key)? 数据库主键(Primary Key):指的是一个列或多列的属性组合,其属性值能唯一标识一条记录,通过它可强制表的实体完整性. 例如: (tb_Bo ...

最新文章

  1. AC日记——任务查询系统 洛谷 P3168
  2. 腾讯产品课观后感之定位2018-08-22
  3. python缩进注意事项_python注意事项
  4. 8.8 Sencha Studio 监视工具( Inspect Tool)
  5. [转载] [Python错误]NameError: name ‘name’ is not defined
  6. 矩阵分析 (一) 线性空间和线性变换
  7. Hadoop配置Yarn
  8. 计算机科学管理学专业大学排名,2020管理科学专业大学排名
  9. Windows server 2012修改输入法
  10. 高性能JSON框架之FastJson的简单使用
  11. 【自动驾驶】华为车BU介绍(2021-11-23晚直播记录)
  12. 云脉自定义模板识别大大提高资料数据格式化的效率
  13. Leetcode题解 二分查找
  14. 导出CAD文件的几种方法
  15. easy excel date 类型解析报错_9 个绝对用得上的excel日期公式,赶紧拿走!
  16. 5.基于Abp的DDD框架
  17. 通过PyFMI读取FMU文件及PyFMI的安装教程
  18. 生存指南2找不到服务器,生存指南2无法进入游戏怎么解决 无法进入游戏解决方法攻略...
  19. Appnium--APP自动化测试工具
  20. 图标图片网址集合(更新中)

热门文章

  1. BZOJ 4802 欧拉函数(Pollard_Rho)
  2. Day2:认识html
  3. [Windows Server 2012] SQL Server 备份和还原方法
  4. CF 460C Present 【DP+】主意
  5. mysql在故障切换时的事件调度器注意事项
  6. jfreechart火速应用
  7. 20200113每日一句
  8. 每日一句20200103
  9. Python 多线程-共享全局变量问题 -args参数 同步的概念
  10. 人脸重建github源码总结