外键的创建

方法1:创建表的时候设置(外键名随机生成)

1.前提条件,必须要有一个主表,这里设为persons

2.主表中必须设置主键字段primary key,这里设为id_p

//创建数据库database(test)
create database if not exists test character set utf8; //创建主表(persons)
create table if not exists persons(
id_p int not null,
lastName varchar(15) not null,
firstName varchar(15) not null,
address varchar(20) not null,
city varchar(15) not null,
primary key(id_p) //设置主键,这里必须要设置
); //插入数据
//创建从表(orders)
create table if not exists orders(
id_o int not null,
orderNo int not null,
id_p int not null,
primary key(id_o),
foreign key(id_p) references persons(id_p) //设置外键,两个字段名id_p不需要一致,但是数据类型必须一致
); //插入数据

  

方法2:创建外键名的方式设置

alter table orders add constraint fk_id foreign key(id_p) references persons(id_p);

  

外键的删除

1.先查出它的外键

show create table orders;

 

2.删除外键

alter table orders drop foreign key order_ibfk_1;

  

mysql中外键的创建与删除的更多相关文章

  1. mysql中外键的特点

    mysql中外键的特点简单描述: 1.要求在从表中设置外键关系: 2.从表的外键列的类型和主表的关联列的类型要求一致或兼容,名称无要求: 3.主表的关联列必须是一个key(一般是主键或唯一键): 4. ...

  2. MySQL中外键删除、更新

      MySQL支持外键的存储引擎只有InnoDB..在创建外键的时候,可以指定在删除.更新父表时,对子表进行的相应操作,包括RESTRICT.NO ACTION.SET NULL和CASCADE. 其 ...

  3. [MySql]MySql中外键设置 以及Java/MyBatis程序对存在外键关联无法删除的规避

    在MySql设定两张表,其中product表的主键设定成orderTb表的外键,具体如下: 产品表: create table product(id INT(11) PRIMARY KEY,name ...

  4. MySQL索引的查看创建和删除

    1.索引作用 在索引列上,除了上面提到的有序查找之外,数据库利用各种各样的快速定位技术,能够大大提高查询效率.特别是当数据量非常大,查询涉及多个表时,使用索引往往能使查询速度加快成千上万倍. 例如,有 ...

  5. Mysql中外键的 Cascade ,NO ACTION ,Restrict ,SET NULL

    外键约束对子表的含义: 如果在父表中找不到候选键,则不允许在子表上进行insert/update 外键约束对父表的含义: 在父表上进行update/delete以更新或删除在子表中有一条或多条对应匹配 ...

  6. mysql 外键的基本使用

    外键的使用条件: 两个表必须是InnoDB表,MyISAM表暂时不支持外键外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时会自动创建索引,但如果在较早的版本则需要显式建立:外键关系的 ...

  7. MySQL外键及级联删除 && 表的存储引擎与创建索引 && 删除数据库和表

    Messages表: mysql>create table Messages( ->message_id int auto_increment primary key, ->user ...

  8. 1、Mysql无法创建外键的原因 2、MySql 外键约束 之CASCADE、SET NULL、RESTRICT、NO ACTION分析和作用

    在Mysql中创建外键时,经常会遇到问题而失败,这是因为Mysql中还有很多细节需要我们去留意,我自己总结并查阅资料后列出了以下几种常见原因. 1.  两个字段的类型或者大小不严格匹配.例如,如果一个 ...

  9. 【mysql创建用户|删除用户|修改用户权限|常用命令】

    原文链接:http://blog.csdn.net/leili0806/article/details/8573636 1.       CREATE USER 语法: CREATE USER 'us ...

随机推荐

  1. 一次Webservice请求的流程

  2. [译]课程 1: 使用 Quartz

    译者注: 原文在这 Lesson 1: Using Quartz 在你使用调度器之前, 你需要先实例化(能猜到是谁么?). 要实例化, 请使用 ISchedulerFactory 的实现. 译者注: ...

  3. centos6.5下安装Redis

    已有redis-3.2.1.tar.gz文件 拖到centos系统的桌面 现在在桌面目录下 tar -zxv -f redis-3.2.1.tar.gz以解压压缩包 cd redis-3.2.1以切换 ...

  4. 【Git】git error记录之 "unpacking the sent packfile failed on the remote"

    错误信息: error: cannot open .git/FETCH_HEAD: Permission denied unpacking the sent packfile failed on th ...

  5. 安装完MySQL数据库设置密码

    对于windows平台来说安装完MySQL数据库后,系统就已经默认生成了许可表和账户,你不需要像在Unix平台上那样执行 mysql_install_db脚本来生成帐户和相应权限许可表.但是如果不是用 ...

  6. PotPlayer安装与配置

    目录 1.简介 2.安装 3.设置 基本选项设置: 播放选项设置: PotPlayer皮肤设置: 1.简介 PotPlayer一款小巧简单的视频播放软件,具有于强大的定制能力和个性化功能. 2.安装 ...

  7. MySQL中update修改数据与原数据相同会再次执行吗?

    作者:powdba 来源:阿里云栖社区 一.背景 本文主要测试MySQL执行update语句时,针对与原数据(即未修改)相同的update语句会在MySQL内部重新执行吗? 二.测试环境 MySQL5 ...

  8. png转tif

    发国外的文章要求图片是tif,cmyk色彩空间的. 大小尺寸还有要求. 比如 网上大神多,找到了一段代码,感谢! https://www.jianshu.com/p/ec2af4311f56 http ...

  9. HBase过滤器的使用

    一.常用过滤器: 1.数据准备: Rowkey:001 Family:Quilfifier address value: 昆明市西山区 Rowkey:001 Family:Quilfifier age ...

  10. MySql 8.0 版本使用navicat连不上解决

    先通过命令行进入mysql的root账户: 更改加密方式 ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE ...