mysql - 在 <TableName> 上创建外键时出错(检查数据类型)

标签 mysql

我想在 mysql 中创建表,第一个表称为 Catégorie,第二个表称为 Article:

(文章)0..* ------------ 1(类别)

但是我得到这个错误:

Error creating foreign key on idCat (check data types)

这是我试过的代码:

CREATE TABLE IF NOT EXISTS `Catégorie` (
  `idCat` int(11) NOT NULL,
  `libCat` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`idCat`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


CREATE TABLE IF NOT EXISTS `Article` (
  `codeArt` int(11) NOT NULL,
  `desgArt` int(11) DEFAULT NULL,
  `etatArt` varchar(50) DEFAULT NULL,
  `qteArt` int(11) DEFAULT '1',
  `qteseulmin` varchar(50) DEFAULT NULL,
  `idCat` int(11) NOT NULL,
  PRIMARY KEY (`codeArt`),
  KEY `idCat` (`idCat`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


ALTER TABLE  `Article` ADD FOREIGN KEY (  `idCat` ) REFERENCES  `GestionStock`.`Catégorie` (
`idCat`
) ON DELETE SET NULL ON UPDATE CASCADE ;

最佳答案

您将列 Article.idCat 声明为 NOT NULL,然后您尝试使用 ON DELETE SET NULL 操作创建外键。

更改列或外键定义。

关于mysql - 在 <TableName> 上创建外键时出错(检查数据类型),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16713421/

相关文章:

mysql - 无法打开 mysql.plugin 表。某些插件可能未加载

mysql - 使用 PyMySQL 的列顺序错误的 SELECT 结果

MySQL CTE - 是否可以迭代数字范围?

php - 当字段名称动态更改时将数据插入mysql表?

php - 如何删除(不是删除)动态生成的表格元素?

数字列上的 MySQL 索引使查询变慢

MySQL选择行直到达到固定数量的条件

php - 如何使用 laravel 4. for windows 文件系统导出 mysql 数据库

Mysql 唯一约束允许单行组合

mysql - 如何获取不在表 “ids” 中的 “service_gos” (Laravel)