【问题标题】:Why I am having a this error on phpmyadmin: Error creating foreign key on revision (check data types)?为什么我在 phpmyadmin 上出现此错误:在修订时创建外键时出错(检查数据类型)?
【发布时间】:2020-05-10 12:55:42
【问题描述】:

我正在尝试在 phpmyadmin 中创建外键,但出现此错误:

在修订时创建外键时出错(检查数据类型)

我不明白,因为数据类型是相等的。所以,我想要的是创建一个从“acoustictreatment”到“filterspecifications”的外键,其中包含标签、offerid 和修订。但我得到了我提到的错误。

这是我的桌子:

  CREATE TABLE `offer` (
  `projectid` varchar(20) NOT NULL,
  `customer` varchar(255) NOT NULL,
  `creator` varchar(255) NOT NULL,
  `date` date NOT NULL,
  `revision` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
ALTER TABLE `offer`
  ADD PRIMARY KEY (`projectid`,`revision`); 



CREATE TABLE `filterspecifications` (
      `tag` varchar(100) NOT NULL,
      `gasFlow` double NOT NULL,
      `dustToHandle` double NOT NULL,
      `offerid` varchar(20) NOT NULL,
      `selectedFilter` varchar(20) NOT NULL,
      `revision` int(11) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
    ALTER TABLE `filterspecifications`
          ADD PRIMARY KEY (`tag`,`offerid`,`revision`),
          ADD KEY `offerid` (`offerid`,`revision`);
        ALTER TABLE `filterspecifications`
        ADD CONSTRAINT `filterspecifications_ibfk_1` 
    FOREIGN KEY (`offerid`,`revision`) REFERENCES `offer` (`projectid`, `revision`) ON DELETE CASCADE ON UPDATE CASCADE;


CREATE TABLE `acoustictreatment` (
      `tag` varchar(100) NOT NULL,
      `offerid` varchar(20) NOT NULL,
      `outputFanSilencer` tinyint(1) NOT NULL,
      `fanAcousticInsulation` tinyint(1) NOT NULL,
      `revision` int(11) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
    ALTER TABLE `acoustictreatment`
      ADD PRIMARY KEY (`tag`,`offerid`,`revision`);

【问题讨论】:

  • sqlfiddle 中工作正常
  • 这就是问题所在,它应该可以正常工作,但在 phpmyadmin 中出现错误
  • 您的代码中没有外键约束。
  • 我知道,因为如果我输入它,它就会显示错误
  • 必须先创建报价,然后再尝试在其上创建外键。

标签: mysql phpmyadmin foreign-keys


【解决方案1】:

我找到的解决方案是删除“acoustictreatment”表并从头开始使用外键重新创建它。因为我想做的是创建所有表,然后创建外键,但这对我不起作用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-20
    • 2022-01-13
    • 2017-03-20
    • 1970-01-01
    • 1970-01-01
    • 2016-09-17
    • 2021-12-31
    • 1970-01-01
    相关资源
    最近更新 更多