今天问了灰哥的一个问题:外键有什么好处?缺点又是啥?
优点:
1、保证数据的完整性
2、用hibernate生成many-to-one这类的时候会关心外键
缺点:
1、由于有关联,所以查询时候会慢一些(有索引慢的不明显)
2、会导致数据不一致的现象
用处:加入一张表只使用另一张表的一个字段,你可以考虑不使用外键。
还有补充,小盆友们,看到了速度帮忙补充。。
================2012年3月7日===========================
在导入数据,有外键情况,导入出错。所以需要如下设置。
set FOREIGN_KEY_CHECKS=0; #在导入前设置为不检查外键约束
。。。。#导入数据
set FOREIGN_KEY_CHECKS=1; #在导入后恢复检查外键约束
=-=-=-=-=-=-=-=-=-=-=2012年5月10日-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=
导入数据的sql语句:
ALTER TABLE Orders
ADD CONSTRAINT fk_PerOrders
FOREIGN KEY (person_id)
REFERENCES tbl_persons(person_id)
完整例子:
set FOREIGN_KEY_CHECKS=0;
ALTER TABLE tbl_project ADD CONSTRAINT fk_product_line FOREIGN KEY
(product_line_id) REFERENCES `tbl_product_line`(product_line_id);
set FOREIGN_KEY_CHECKS=1;
出现过问题:外键无法添加,提示出错“result 2 when explaining filename 添加 外键”
原因是:tbl_project 的product_line_id 在 tbl_product_line 表中不存在,导致错误,这个是因为数据库会进行外键检查。。
分享到:
相关推荐
在示例中,使用的是`1.4.3.RELEASE`版本,需要注意的是,如果引入了不兼容的版本或错误的依赖,如`spring-security-test`,可能会导致JPA映射问题,特别是对于外键约束,这可能导致数据一致性问题。因此,确保所有...
这份"mysql学习笔记.rar"包含的资源旨在帮助初学者和有经验的开发者深入理解和掌握MySQL的相关知识。 首先,"mysql学习笔记.doc"很可能是核心的学习资料,它可能包含了MySQL的基础概念、安装与配置、SQL语言基础、...
在 MySQL 学习笔记中,介绍了约束的添加和删除,包括主键约束、唯一主键、自增约束、非空约束、默认约束、外键约束等。 * 主键约束:使用 `PRIMARY KEY` 命令可以添加主键约束,例如 `CREATE TABLE user (id INT ...
以下是对Oracle学习笔记整理的主要知识点的详细说明: 1. **数据库选择**: 在决定使用哪种数据库时,通常需要考虑项目的规模、性能需求、安全性要求以及可用资源。Oracle数据库因其稳定性、可扩展性和高性能而被...
【JAVA项目学习笔记】 在Java开发中,尤其是在SpringMVC框架下,我们常常会遇到各种注解的使用,这些注解极大地简化了代码并优化了性能。以下是一些关键注解的详细解释: 1. **@Basic**: 这个注解用于指定实体属性...
### ORACLE经典学习笔记知识点概览 #### 第一章 ORACLE 命令 本章节主要介绍了Oracle数据库中常用的命令及其使用方法。 1. **查看参数文件**: `Desc v$parameter` - 这个命令用于查看Oracle的参数文件信息,通过...
这份"超经典mysql DBA学习笔记"涵盖了成为一名优秀DBA所需掌握的众多知识点,旨在帮助学习者深入理解MySQL数据库的运维与优化。 一、MySQL概述 MySQL是一种开源、免费的关系型数据库管理系统,广泛应用于互联网应用...
MySQL个人学习笔记 本篇文章是一个关于MySQL的个人学习笔记,涵盖了基本的增删改查语句,适合新手快速使用MySQL。下面是文章的详细知识点: 一、数据库操作 1. 登陆数据库:使用`mysql –u 用户名 -p 密码`命令...
### Oracle 数据库学习笔记 #### Oracle DML 数据库操作语言 - **数据插入**: 在 Oracle 数据库中,可以通过 `INSERT` 语句将一个表的部分数据插入到另一个表中。例如,利用 `INSERT INTO table_name (subquery)` ...
在关系型数据库中,表之间往往存在复杂的关联关系,如何合理设计表结构,如何定义主键、外键、唯一约束、检查约束等,是保证数据完整性和一致性的关键。 在进一步的讨论中,笔记还涉及了视图、索引和事务的概念。...
Mysql学习笔记,包含主键外键,连表查询,分组查询,多表查询,排序等,内含代码示例
Oracle学习笔记涵盖了数据库管理和SQL语言的关键知识点,这些是数据库管理员和开发人员必须掌握的基础技能。以下是对这些内容的详细解析: 1. **SQL语句**: - **增加主键**:`ALTER TABLE` 语句用于在已存在的表...
《SQL2005学习笔记》是一份深入探讨SQL Server 2005核心概念、功能及优化策略的宝贵资料。SQL Server 2005是微软推出的一款强大的关系型数据库管理系统,它在数据存储、处理和分析方面具有广泛的应用。这份笔记旨在...
通过元数据(如XML或注解),开发者可以定义对象类和数据库表之间的映射关系,包括基本类型的字段对应表的列,类的属性与表的外键,以及1:1、1:n、n:m的关联关系和继承结构。 【二、Hibernate入门】 Hibernate是一...
### Redis 学习笔记知识点概览 #### 一、Redis 概述与应用场景 ##### 1.1 NoSQL 数据库简介 - **定义**: NoSQL(Not Only SQL)泛指非关系型数据库,它们通常不使用传统的表格关系来存储数据。 - **特性**: NoSQL ...
《传智播客2016 Hibernate框架学习笔记》是一份详实的教程,旨在帮助初学者和进阶者深入理解和掌握Hibernate框架。该资源包含了四天的学习内容,分别是day01、day02、day03和day04,涵盖了从基础到高级的多个主题。...
郝宾的数据库学习笔记主要涵盖了数据库的基本概念、作用、安装与卸载,预备知识,以及数据库操作的基础。首先,数据库被定义为存储和管理数据的软件及其数据集合,包括表、关系和操作。数据库的存在是因为它能高效地...
《邹波老师Hibernate教程学习笔记》是针对Java开发者深入理解并掌握ORM框架Hibernate的重要参考资料。这是一份由个人在观看邹波老师的Hibernate视频教程后精心整理的学习笔记,旨在帮助初学者和有一定基础的程序员更...
【JPA学习笔记】 JPA(Java Persistence API)是Java平台上的一个ORM(Object-Relational Mapping)规范,它提供了一种将Java对象与数据库表进行映射的机制,简化了数据库操作。JPA允许开发者使用面向对象的方式...