mysql - #1215 - 无法添加外键约束 - 不是错误的数据类型

标签 mysql foreign-keys

所以我有这个代码:

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
set foreign_key_checks = 0;


# MAKE WAY FOR THE NEW
DROP DATABASE IF EXISTS `Winkelbezoek`;

CREATE DATABASE `Winkelbezoek` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
USE `Winkelbezoek`;


CREATE TABLE IF NOT EXISTS `PERSOON` (
`BSN` int(11) NOT NULL,
`Leeftijd` varchar(30) NOT NULL,

CONSTRAINT
    PRIMARY KEY (`BSN`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE IF NOT EXISTS `WINKEL` (
`Naam` varchar(40) NOT NULL,
`Plaats` varchar(40) DEFAULT 'Breda',
`Grootte` ENUM('Klein','Groot'),

CONSTRAINT
    PRIMARY KEY (`Naam`,`Plaats`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE IF NOT EXISTS `ISKLANTBIJ` (
`BSN` int(11) NOT NULL,
`Datum` date NOT NULL,
`Naam` varchar(40) NOT NULL,
`Plaats` varchar(40) DEFAULT 'Breda',

CONSTRAINT
    PRIMARY KEY (`datum`),
    FOREIGN KEY (`BSN`) REFERENCES PERSOON(`BSN`),
    FOREIGN KEY (`Naam`) REFERENCES WINKEL(`Naam`),
    FOREIGN KEY (`Plaats`) REFERENCES WINKEL(`Plaats`) ON UPDATE CASCADE ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

当我尝试在 PHPmyadmin 中执行它时,它给我一个错误:#1215 - 无法添加外键约束

我做了一些搜索,但我能找到的唯一可能出错的地方是数据类型的使用不一致。我已经对它们进行了三次检查,但我仍然找不到这里出了什么问题。有谁知道可能是什么错误?

最佳答案

您可以使用MYsql接口(interface)创建您的库,然后导出代码。 如果您不知道如何编写代码,它可以帮助您。

关于mysql - #1215 - 无法添加外键约束 - 不是错误的数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29365685/

相关文章:

mysql - 数据库设计 : relate to car's model or trim?

mysql - 产品未显示在 opencart 管理和前端中

mysql - 通过 case 语句从 group 中获取外键项的计数

mysql - 在同一个表中同时拥有主键和外键

mysql - "#2002 Cannot log in to the MySQL server"登录

php - 不同用户类型的 Laravel 关系

php - MySQL- 无法跳转到 MySQL 结果索引的第 0 行

MySQL 外键,无法创建表(errno : 150)

Django 内联模型管理过滤器外部字段

java - 如何从 sqlite 和外键检索数据