mysql-数据库foreign key error 1215

问题描述

数据库foreign key error 1215
 create table department(dept_name varchar(20) not null primary key building varchar(20)budget numeric(122)); create table instructor( ID varchar(5)  name varchar(20)  dept_name varchar(20)  salary numeric(121));create table course( course_id varchar(8)  title     varchar(50)  dept_name varchar(20) references department  credits   numeric(20)  primary key (course_id)  #foreign key constraints can be here too :    #foreign key (dept_name) references department);/*alter table course   change column course_id     course_id varchar(8) unique;*/create table section( course_id     varchar(8)  sec_id        varchar(8)  semster       varchar(6)  year          numeric(40)  building      varchar(15)  room_number   varchar(7)  time_sloth_id varchar(4)  primary key(course_idsemsteryear)  foreign key (course_id) references course);create table teach( ID          varchar(5)  course_id   varchar(8)  semster     varchar(6)  year        numeric(40)  primary key (IDcourse_idsemster year)  foreign key (ID) references instructor  foreign key (course_id semster year) references section);

这段代码运行在MySql上总是在create table section的时候报error 1215不能添加外键......求问为什么啊......

解决方案

试试foreign key (course_id) references course(course_id)

时间: 2024-12-05 14:55:09

mysql-数据库foreign key error 1215的相关文章

详解远程连接Mysql数据库的问题(ERROR 2003 (HY000))_Mysql

在我们用客户端及其远程连接服务器Mysql数据库的过程中,容易出现下面问题: 问题代码代码 ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.0.19' (111)  ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.0.19' (111)      这个 原因就是Mysql数据库的默认配置文件my.cnf(linux下)中的bind-address

MySQL添加外键时报错:1215 Cannot add the foreign key constraint的解决方法_Mysql

前言 这篇文章主要涉及到在数据创建表时,遇到ERROR 1215 (HY000): Cannot add foreign key constraint 问题方面的内容,对于在数据创建表时,遇到同样问题感兴趣的同学可以参考一下. 一.问题的提出 创建两个表:        product:  商品表      sealer:  供货商表 相应的SQL如下: product表: DROP TABLE IF EXISTS `product`; CREATE TABLE `product` ( `id`

mysql数据库KEY分区用法

  mysql数据库KEY分区用法 按照KEY进行分区类似于按照HASH分区,除了HASH分区使用的用户定义的表达式,而KEY分区的 哈希函数是由MySQL 服务器提供.MySQL 簇(Cluster)使用函数MD5()来实现KEY分区;对于使用其他存储引擎的表,服务器使用其自己内部的 哈希函数,这些函数是基于与PASSWORD()一样的运算法则. "CREATE TABLE ... PARTITION BY KEY"的语法规则类似于创建一个通过HASH分区的表的规则.它们唯一的区别在

远程连接Mysql数据库问题(ERROR 2003 (HY000))

问题代码代码 ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.0.19' (111)         这个 原因就是Mysql数据库的默认配置文件my.cnf(linux下)中的bind-address默认为127.0.0.1,所以就算你创建了可以 remote访问的用户,你也不能使用mysql -h命令进行访问,若访问就会出现上出问题,因为此时Mysql只接受localhost,所以需要把bind-address屏蔽掉

mysql外键(Foreign Key)介绍和创建外键的方法_Mysql

在MySQL中,InnoDB引擎类型的表支持了外键约束.外键的使用条件:1.两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少目前不支持):2.外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时会自动创建索引,但如果在较早的版本则需要显示建立:3.外键关系的两个表的列必须是数据类型相似,也就是可以相互转换类型的列,比如int和tinyint可以,而int和char则不可以: 外键的好处:可以使得两张表关联,保证数据的一致性和实现一些级联操作

mysql数据库报ERROR 104错误解决

今天在安装完毕mysql,连接mysql数据库时,提示:ERROR 1045(2800)错误,如下图: 查询相关资料,可以进行如下的处理: 停用mysql服务: /etc/rc.d/init.d/mysqld stop或者service mysqld stop 输入命令: mysqld_safe –skip-grant-tables & (加入&是为了让mysql数据库后台运行) 登入数据库:mysql -u root mysql mysql> use mysql; 输入如下SQL语

连接mysql数据库Error No 1130的错误解决方法

使用mysql的客户端连接到mysql的服务端时,出现如下错误: Error No. 1130 Host '192.168.0.14' is not allowed to connect to this MySQL server 解决方法: 1. 改表法.可能是你的帐号不允许从远程登陆,只能在localhost.这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,

数据库中的参照完整性(Foreign Key)

之前在项目中遇到了这样一个问题,我举得简单的例子来说明, 比如我们有两个表,一个表(department)存放的是部门的信息,例如部门id,部门名称等:另一个表是员工表(staff),员工表里面肯定要存放每个员工所在的部门.那问题来了,如果我们这个时候删除了部门表中的某条记录,在staff表中会发生什么? 为了解答上面的问题,让我们先来回顾一下什么是参照完整性. 我们常常希望保证在一个关系中给定属性集上的取值也在另一个关系的特定属性集的取值中出现.这种情况称为参照完整性(referential

codefirst创建MySQL数据库报错: Specified key was too long; max key length i

问题描述 使用codefirst创建MySQL数据库,虽然数据库创建好了,但是报错:Specifiedkeywastoolong;maxkeylengthis767bytes.检查表的字段设置,没有很长的,我甚至只设置一个int型的字段,还是报错,请求帮助啊 解决方案 解决方案二:分数不多了,请大家帮帮忙