【MYSQL外键(Foreign Key)的使用】教程文章相关的互联网学习教程文章

mysql外键详解

MySQL中“键”和“索引”的定义相同,所以外键和主键一样也是索引的一种。不同的是MySQL会自动为所有表的主键进行索引,但是外键字段必须由用户进行明确的索引。用于外键关系的字段必须在所有的参照表中进行明确地索引,InnoDB不能自动地创建索引。 2.2、外键可以是一对一的,一个表的记录只能与另一个表的一条记录连接,或者是一对多的,一个表的记录与另一个表的多条记录连接。 3. 3、如果需要更好的性能,并且不需要完整性检查,...

总结: MySQL(基础,字段约束,索引,外键,存储过程,事务)操作语法

1. 显示数据库列表 show databases; # 查看当前所有数据库 show databases \G #以行的方式显示 2. 在命令行中,执行sql语句 mysql -e ‘show databases‘ -uroot -p123456 mysqlshow -uroot -p123456 # 不常用,记住上面那个就行了 3.创建数据库语法 create database 数据库名; 例如: create database `HA-test`; 4. 切换数据库 use HA-test; 5. 登陆时,直接切换到指定数据库 mysql -uroot -p123456 <数据库名> 6. 查看数据库当前时...

2-16 MySQL字段约束-索引-外键【图】

一:字段修饰符 1:null和not null修饰符 我们通过这个例子来看看 mysql> create table worker(id int not null,name varchar(8) not null,pass varchar(20) not null); mysql> insert into worker values(1,‘HA‘,‘123456‘); mysql> insert into worker values(1,‘LB‘,null); ERROR 1048 (23000): Column ‘pass‘ cannot be null 不能为null mysql> insert into worker values(2,‘HPC‘,‘‘); 注:NOT NULL 的字段是不能...

Mysql无法创建外键的原因

MySQL无法创建外键的原因1. 两个字段的类型或者大小不严格匹配。例如,如果一个是int(10),那么外键也必须设置成int(10),而不是int(11),也不能是tinyint。另外,你还必须确定两个字段是否一个为 signed,而另一个又是unsigned(即:无符号),这两字段必须严格地一致匹配,更多关于signed和unsigned的信息,请参阅:http://www.verysimple.com/blog/?p=57 2. 试图设置外键的字段没有建立起索引,或者不是一个primary key(主键)...

mysql外键引发的锁等待【代码】

有这样两条sql:insert table_a (bId) value(1); -- sql-1 update table_b set b.xx=123 where b.id =1; -- sql-2其中,table_a的字段bId是个外键;外键关联的正是table_b的id字段。在mysql上执行这两条数据时,sql-1会锁住sql-2.我们的系统中,为这一个锁,发生了不知道多少的锁等待,更引发了不知道多少的死锁。特此备忘。本文出自 “编程的摩羯男” 博客,请务必保留此出处http://winters1224.blog.51cto.com/3021203/1879721my...

mysql 外键约束【代码】

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‘); ##############演示############## 三种外键约束模式:级联(cascade)、置空(set null)、禁止(no action / restrict 默认) 1.级联方式(从表中的列也会被删除或更新)create table t_user ( id int not null, name varchar(30), gr...

Mysql学生管理系统:表的建立,外键一对多,多对多关系,中间关联表的建立

学生管理系统 管理员注册/登录/注销 注册班级(班级详细信息) 注册学生信息 查看班级信息/查看老师资料 教师注册/注销 查看教师资料 查看学生资料 根据名称/班级/ 查看学生详细信息--支持模糊 注册科目 管理员(admini) ad_id(管理员id) ad_number(管理员账号) ad_pass(管理员密码) ad_yn(管理员是否禁用) create table admini( ad_id int PRIMARY KEY AUTO_INCREMENT,-- 主键自增,非空唯一 ad_number in...

MYSQL外键(Foreign Key)的使用【代码】

REFERENCES tbl_name (index_col_name, ...) [ON DELETE {RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT}] [ON UPDATE {RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT}]该语法可以在 CREATE TABLE 和 ALTER TABLE 时使用,如果不指定CONSTRAINT symbol,MYSQL会自动生成一个名字。ON DELETE、ON UPDATE表示事件触发限制,可设参数:RESTRICT(限制外表中的外键改动)CASCADE(跟随外键改动)SET NUL...

mysql中的外键foreign key

references my_tab2;)charset utf8;2. 在创建好的表中增加alter table my_tab1 add [constraint 外键名] foreign key(外键字段名) references mytab2(主键字段名); 三、删除外键alter table my_tab drop foreign key 外键名字;mysql中的外键foreign key标签:操作 -- 表关联 类型 匹配 约束 alter tab var 本文系统来源:http://www.cnblogs.com/pengyin/p/6375860.html

Mysql外键创建【代码】

CREATE TABLE `l1` (`nid` int(11) NOT NULL AUTO_INCREMENT,`user` char(10) NOT NULL,`pwd` char(10) NOT NULL,`s1_nid` int(11) NOT NULL,PRIMARY KEY (`nid`),KEY `l1_s1` (`s1_nid`),CONSTRAINT `l1_s1` FOREIGN KEY (`s1_nid`) REFERENCES `s1` (`nid`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;删除外键alter table l1 drop foreign key l1_s1;创建外键alter table l1 add constraint s1_l1 foreign key (...

mysql获取外键, 根据数据库名和表名获取表所对应的所有外键

ii.`COLUMN_NAME` FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS ii WHERE ii.`CONSTRAINT_SCHEMA`=‘xius‘ AND ii.`TABLE_NAME`=‘comment_user‘ AND ii.`REFERENCED_COLUMN_NAME` != ‘null‘;xius:  数据库名 comment_user:  表名 mysql获取外键, 根据数据库名和表名获取表所对应的所有外键标签:form color schema sel blog com and code 数据库名 本文系统来源:http://www.cnblogs.com/007sx/p/644...

Mysql 外键检查

在Mysql中删除一张表或一条数据的时候,出现 [Err] 1451 -Cannot delete or update a parent row: a foreign key constraint fails (...) 这是因为MySQL中设置了foreign key关联,造成无法更新或删除数据。可以通过设置FOREIGN_KEY_CHECKS变量来避免这种情况。 SET FOREIGN_KEY_CHECKS = 0; //关闭外键的检查 SET FOREIGN_KEY_CHECKS = 1; //打开外键的检查 查看当前FOREIGN_KEY_CHECKS的值可用如下命令 SELECT @@FOREIG...

MySQL外键设置中的的 Cascade、NO ACTION、Restrict、SET NULL

. cascade方式在父表上update/delete记录时,同步update/delete掉子表的匹配记录 . set null方式在父表上update/delete记录时,将子表上匹配记录的列设为null要注意子表的外键列不能为not null . No action方式如果子表中有匹配的记录,则不允许对父表对应候选键进行update/delete操作 . Restrict方式同no action, 都是立即检查外键约束 . Set default方式 父表有变更时,子表将外键列设置成一个默认的值 但Innodb不能识...

MySQL 如何删除有外键约束的表数据

禁用外键约束 SET FOREIGN_KEY_CHECKS=0; -- 删除数据 truncate table stockTBL; -- 启动外键约束 SET FOREIGN_KEY_CHECKS=1; -- 查看当前FOREIGN_KEY_CHECKS的值,可用如下命令: SELECT @@FOREIGN_KEY_CHECKS; MySQL 如何删除有外键约束的表数据标签:set log nbsp 命令 禁用 tab span 启动 color 本文系统来源:http://www.cnblogs.com/ziyu516518/p/6657493.html

MySQL 外键约束【图】

外键是表中的一个字段,它可以不是本表的主键,但对应另一个表的主键。主表(父表):对于两个具有关联关系的表而言,相关联字段中主键所在的那个表即是主表从表(子表):对于两个具有关联关系的表而言,相关联字段中外键所在的那个表即是从表语法:[CONSTRAINT <外键名>] FOREIGN KEY [字段名] REFERENCES <主表名> 主键列 MySQL 外键约束标签:img images logs src nbsp reference 主键 fore...