MySql中的FOREIGN KEY

在mysql数据库编程中经常会出现几个表中存在某些相关属性,通常情况下我们可以通过使用外键约束来解决这个问题。但在删除表和修改表的结构时会出现一些小问题。

在删除表的时候Cannot delete or update a parent row: a foreign key constraint fails (...)

这是因为外键约束导致不能对表直接的进行相关操作。

取消外键约束  SET FOREIGN_KEY_CHECKS=0;

设置外键约束 SET FOREIGN_KEY_CKECKS=1;

 

时间: 2024-11-13 20:58:29

MySql中的FOREIGN KEY的相关文章

MySQL中ON DUPLICATE KEY UPDATE使用

今天做推断插入用到了MySQL中ON DUPLICATE KEY UPDATE,如今Mark下面! 假设你想做到数据库中没有数据的话插入数据.有数据的话更新数据,那么你能够选择ON DUPLICATE KEY UPDATE. ON DUPLICATE KEY UPDATE可以在UNIQUE索引或PRIMARY KEY存在的情况下对旧行运行UPDATE操作. 比如:假设列a被定义为UNIQUE,而且包括值1,则下面两个语句具有同样的效果: INSERT INTO table (a,b,c) VAL

mySQL中删除unique key的语法 (删除某个字段的唯一性)

mySQL中删除unique key的语法 CREATE TABLE `good_booked` (  `auto_id` int(10) NOT NULL auto_increment,  `good_id` int(11) default NULL,  `chemist_id` int(11) default NULL,  PRIMARY KEY  (`auto_id`),  UNIQUE KEY `good_id` (`good_id`,`chemist_id`),  KEY `curre

MYSQL外键(Foreign Key)的使用

转载自:http://www.cppblog.com/wolf/articles/69089.html#Post 原文实在太精辟又形象,忍不住转载过来留下笔记,像作者致敬 在MySQL 3.23.44版本后,InnoDB引擎类型的表支持了外键约束.外键的使用条件:1.两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少目前不支持):2.外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时会自动创建索引,但如果在较早的版本则需要显示建立: 3.外

mysql 外键(FOREIGN KEY)使用介绍

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

MySQL数据库之-foreign key 外键(一对多、多对多、一对一)、修改表、复制表

今日重点:外键 一对多 多对多      一对一 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 一.引言: 我们在同一数据库创建的表时候,很多时候会出现相同数据的冗余问题,也就是说几个id

Mysql create constraint foreign key faild.trouble shooting method share

mysql> create table tb_test (id int(10) not null auto_increment primary key,action_id int(10) not null,error_code int(10) not null default 0,desc_key varchar(64) not null default 'audit.log.default',INDEX(action_id),constraint `FK_ACTIONID` foreign k

在 mysql 中利用 Duplicate key, 一句话实现存在的更新不存在插入功能

mysql 中可以用一个sql命令实现在插入时,如果发现唯一索引重复的记录则自动改为更新语句, 语句如下: INSERT INTO radcheck (username,attribute,op,VALUE) VALUES ('tyson','Cleartext-Password',':=','123') on duplicate key update value='123'; 注意,radcheck 表中 username 和 attribute 列是个组合的唯一索引. alter table

MySQL中index和key的关系

KEY is normally a synonym for INDEX. The key attribute PRIMARY KEY can also be specified as just KEY when given in a column definition. This was implemented for compatibility with other database systems. 简言之,在MySQL中,INDEX和KEY的概念是一样的.PRIMARY KEY要求NOT

mysql中key 、primary key 、unique key 与index区别

一.key与primary key区别 CREATE TABLE wh_logrecord ( logrecord_id int(11) NOT NULL auto_increment, user_name varchar(100) default NULL, operation_time datetime default NULL, logrecord_operation varchar(100) default NULL, PRIMARY KEY (logrecord_id), KEY wh