mysql中外键的创建与删除

外键的创建

方法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;

  

原文地址:https://www.cnblogs.com/laoniaofly/p/8383907.html

时间: 2024-10-12 20:02:10

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

mysql命令行下创建和删除索引简介

mysql命令行下创建和删除索引简介: mysql中创建索引可以使用CREATE TABLE语句,也可以用CREATE INDEX或ALTER TABLE来给表增加索引.索引的删除可以使用ALTER TABLE或DROP INDEX语句来实现. (1)使用ALTER TABLE语句创建索引.语法如下:alter table table_name add index index_name (column_list) ;alter table table_name add unique (colum

MySQL之表的创建、删除、修改、删除、查看及索引

创建数据库 create database|schema [if not exists] db_name [character set= ] [collate= ] 注:schema可以理解为方案或者数据库,与database一个意义 例创建一个students数据库,且默认字符集为'gbk'.默认排序为'gbk_chinese_ci'; create schema if not exists students character set 'gbk' collate 'gbk_chinese_c

外键的创建、删除、查看

一.创建表的时候创建外键 如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表.外键是用来实现参照完整性的,不同的外键约束方式将可以使两张表紧密的结合起来,特别是修改或者删除的级联操作将使得日常的维护工作更加轻松.这里以MySQL为例,总结一下3种外键约束方式的区别和联系. 这里以用户表和用户组表为例,这是一个典型的多对一关系,多个用户对应于一个用户组. 首先创建用户组表: 创建用户组表 create table t_group ( id int not null

windbg脚本实践2----监控特定注册表键值创建和删除

在Cmxxkey层面下断点,配合bp /t (/p)  命令可以监控指定线程 进程 对指定注册表键值的创建和删除. $$***************************************************************** $$ Script by kms_hhl to monitor regvalue delete set $$ Create Time 2014_11 $$ Execute by $$><D:\BaiduYunTongBu\百度云同步盘\windb

mysql中外键的一些基本操作

1 带外键的两个表,当插入记录的时候必须先在父表中插入记录,然后在子表中插入记录 2 父表 3 mysql> create table provinces( 4 -> id smallint unsigned primary key auto_increment, 5 -> pname varchar(30) not null 6 -> ); 7 8 查看数据表引擎 9 mysql> show create table provinces; 10 +-----------+-

MySQL索引的查看创建和删除

1.索引作用 在索引列上,除了上面提到的有序查找之外,数据库利用各种各样的快速定位技术,能够大大提高查询效率.特别是当数据量非常大,查询涉及多个表时,使用索引往往能使查询速度加快成千上万倍. 例如,有3个未索引的表t1.t2.t3,分别只包含列c1.c2.c3,每个表分别含有1000行数据组成,指为1-1000的数值,查找对应值相等行的查询如下所示. SELECT c1,c2,c3 FROM t1,t2,t3 WHERE c1=c2 AND c1=c3 此查询结果应该为1000行,每行包含3个相

关于mysql中外键关联的一些个人理解

在我看来hibernate最麻烦的一件事就是配置外键关联,稍微不慎就会出现配置错误的情况,现在的项目全部都是在使用mybaits,而mybaits使用就简单的多,起码虽然说是要自己写mysql语句,但是起码这种做法在现阶段的项目开发中还是非常的流行,以前经常听到眼言论说用hibernate开发会比mybaits要来得快,其实那应该 是对于高手而言,但是绝大部分如我这群菜逼而言,老老实实的写sql语句会更好一点,废话不多说,今天主要是谈谈外键关联对在项目开发中的影响. 表的关联,在某种程度上来说只

MySQL索引 查看、创建、删除

1.索引类型 创建索引时,可规定索引能否包含重复值.如不包含,则索引应创建为PRIMARY KEY 或 UNIQUE 索引.对于单列惟一性索引,这保证单列不包含重复的值.对于多列惟一性索引,保证多个值的组合不重复. PRIMARY KEY 索引和 UNIQUE 索引非常类似.事实上,PRIMARY KEY 索引仅是一个具有名称 PRIMARY 的 UNIQUE 索引.这表示一个表只能包含一个 PRIMARY KEY,因为一个表中不可能具有两个同名的索引. 2.索引作用 一级索引, 简单的理解可以

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

如果在父表中找不到候选键,则不允许在子表上进行insert/update 外键约束对父表的含义: 在父表上进行update/delete以更新或删除在子表中有一条或多条对应匹配行的候选键时,父表的行为取决于:在定义子表的外键时指定的on update/on delete子句, InnoDB支持5种方式, 分列如下 1 . cascade方式 在父表上update/delete记录时,同步update/delete掉子表的匹配记录 On delete cascade从mysql3.23.50开始可