php - #1215 - 无法添加外键约束

标签 php mysql sql

我正在使用 Yiiframwork 开展一个项目,并且我的数据库项目中有此表

CREATE TABLE IF NOT EXISTS `tbl_annonce` (
  `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
  `idEntreprise` tinyint(3) unsigned NOT NULL 
   COMMENT 'CONSTRAINT FOREIGN KEY (idEntreprise) REFERENCES tbl_entreprise(id)',
  `titre` varchar(100) NOT NULL,
  `detailleDiscription` varchar(5000) NOT NULL,
  `categorie` varchar(100) DEFAULT NULL,
  `typePoste` varchar(100) NOT NULL,
  `salaireMin` varchar(80) NOT NULL,
  `salaireMax` varchar(80) NOT NULL,
  `niveauEtude` varchar(80) NOT NULL,
  `niveauExperience` varchar(80) NOT NULL,
  `langue` varchar(50) DEFAULT NULL,
  `poste` varchar(50) NOT NULL,
  `pays` varchar(50) NOT NULL,
  `ville` varchar(50) NOT NULL,
  `adresse` varchar(80) NOT NULL,
  `datePublication` timestamp NOT NULL 
       DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `etat` varchar(50) NOT NULL,
  `photo` varchar(255)  NULL,
  `nometr` text NOT NULL,
  PRIMARY KEY (`id`),
  CONSTRAINT `fk_idEntrepriseAnn` 
      FOREIGN KEY (idEntreprise) 
      REFERENCES tbl_entreprise(id)
      ON DELETE CASCADE ON UPDATE CASCADE
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;

我只使用'comment',因为我在 yii 框架项目的教程中找到了它。 我的数据库中已将属性“idEntreprise”作为 FK,但是当我输入其他 'idEntreprise' 时,该属性确实存在于我的表中 entreprise这不是问题,但一定是问题。

所以我添加了 'identreprise' 作为 Fk,现在遇到了这个问题。

希望你理解我的问题:/

谁能帮帮我!!

最佳答案

要在列上定义外键,它必须满足一些条件。

  1. 子列和父列必须具有相同的列定义(按类型), 已签署。
  2. 父列必须定义索引。

确保

  1. tbl_entreprise.id 列已建立索引。
  2. tbl_annonce 中的列定义 idEntreprise tinyint(3) unsigned 匹配 与 tbl_entreprise.id

引用:MySQL: Foregin Key Constaints

关于php - #1215 - 无法添加外键约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23671982/

相关文章:

mysql - 数据库设计 : Where to store account balance?

mysql - 在 MySQL 中更新 1 列中的多行

mysql - 酒店预订系统 SQL : identify any room available in date range

php - HTML/CSS 可视化 RBAC 图

php - Codeigniter 将数据库中的数据显示到文本框中

php - Android使用GSON在listview中显示记录

c# - 事件日志实用性

php - 如何在 Yii2 中创建寻呼机?

php - Laravel,将JSON数组转换为Array,并且只从Array中获取一个对象

php - mySQL/PHP 在行存在时更新,或者在要检查的列不唯一时插入