当我将我的脚本放入phpmyadmin时,它会返回该错误:
#1215 - Cannot add foreign key constraint, CREATE TABLE `t_cif` ( `idCif` int(11) NOT NULL, `cifTitle` varchar(25) NOT NULL, `cifDescription` varchar(255) NOT NULL, `cifEval` float DEFAULT NULL, `cifNbrEval` int(11) DEFAULT NULL, `fkIdUser` int(11) NOT NULL, `fkIdCategory` int(11) NOT NULL,
我的脚本代码:
-- phpMyAdmin SQL Dump
-- version 4.5.4.1
-- http://www.phpmyadmin.net
--
-- Client : localhost
-- Généré le : Ven 09 Mars 2018 à 09:25
-- Version du serveur : 5.7.11
-- Version de PHP : 7.0.3
DROP DATABASE IF EXISTS `mycifdb`;
CREATE DATABASE `mycifdb`;
USE `mycifdb`;
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Base de données : `mycifdb`
--
-- --------------------------------------------------------
--
-- Structure de la table `t_cif`
--
CREATE TABLE `t_cif` (
`idCif` int(11) NOT NULL,
`cifTitle` varchar(25) NOT NULL,
`cifDescription` varchar(255) NOT NULL,
`cifEval` float DEFAULT NULL,
`cifNbrEval` int(11) DEFAULT NULL,
`fkIdUser` int(11) NOT NULL,
`fkIdCategory` int(11) NOT NULL,
PRIMARY KEY (idCif),
FOREIGN KEY (`fkIdUser`) REFERENCES t_user(`idUser`),
FOREIGN KEY (`fkIdCategory`) REFERENCES t_category(`idCategory`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-- --------------------------------------------------------
--
-- Structure de la table `t_category`
--
CREATE TABLE `t_category` (
`idCategory` int(11) NOT NULL,
`catName` varchar(25) NOT NULL,
PRIMARY KEY (`idCategory`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-- --------------------------------------------------------
--
-- Structure de la table `t_user`
--
CREATE TABLE `t_user` (
`idUser` int(11) NOT NULL,
`usePseudo` varchar(25) NOT NULL,
`useDateEntry` date NOT NULL,
`useNbrCif` int(11) DEFAULT NULL,
`useNbrEval` int(11) DEFAULT NULL,
`usePassword` varchar(200) NOT NULL,
`useEmail` varchar(50) NOT NULL,
PRIMARY KEY (`idUser`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
答案 0 :(得分:1)
t_cif
中的外键取决于t_category
和t_user
。
因此,在创建t_category
表之前,应创建t_user
和t_cif
个表。
更改创建表的顺序并检查其是否正常工作。