【问题标题】:SQL error code 1054 unknown columnSQL错误代码1054未知列
【发布时间】:2015-08-19 00:56:24
【问题描述】:

这是我的查询:

create table if not exists applications (
    idResearch int not null, 
    idProf char(10) not null,
    primary key (idResearch, idProf),
    foreign key (idResearch) references research(idResearch),
    foreign key (idProf) references professor(idProf)
);

这是桌子:

INSERT INTO `university`.`applications` (`idResearch`, `idProf`) VALUES ('10', '123456789');
INSERT INTO `university`.`applications` (`idResearch`, `idProf`) VALUES ('10', '432156789');
INSERT INTO `university`.`applications` (`idResearch`, `idProf`) VALUES ('10', '789654321');
INSERT INTO `university`.`applications` (`idResearch`, `idProf`) VALUES ('11', '876098432');
INSERT INTO `university`.`applications` (`idResearch`, `idProf`) VALUES ('11', '234567890');
INSERT INTO `university`.`applications` (`idResearch`, `idProf`) VALUES ('12', '432156789');
INSERT INTO `university`.`applications` (`idResearch`, `idProf`) VALUES ('12', '789654321');
INSERT INTO `university`.`applications` (`idResearch`, `idProf`) VALUES ('13', '876098432');
INSERT INTO `university`.`applications` (`idResearch`, `idProf`) VALUES ('14', '876098432');
INSERT INTO `university`.`applications` (`idResearch`, `idProf`) VALUES ('14', '987654321');
INSERT INTO `university`.`applications` (`idResearch`, `idProf`) VALUES ('15', '432156789');
INSERT INTO `university`.`applications` (`idResearch`, `idProf`) VALUES ('16', '123456789');
INSERT INTO `university`.`applications` (`idResearch`, `idProf`) VALUES ('16', '432156789');
INSERT INTO `university`.`applications` (`idResearch`, `idProf`) VALUES ('16', '789654321');
INSERT INTO `university`.`applications` (`idResearch`, `idProf`) VALUES ('17', '789654321');
INSERT INTO `university`.`applications` (`idResearch`, `idProf`) VALUES ('17', '432156789');

15:26:13 如果不存在应用程序(idResearch int not null,idProf char(10) not null,主键(idResearch,idProf),外键(idResearch)引用研究(idResearch),外键( idProf)引用教授(idProf))错误代码:1215。无法添加外键约束0.109秒

【问题讨论】:

  • 你在哪里得到错误?注意:我非常喜欢 id 列是自动递增的列。
  • 0 118 15:01:50 INSERT INTO university.applications (idResearch, idProf) VALUES ('10', '123456789') 错误代码: 1054。未知列'字段列表'中的'idProf' 0.000 秒
  • 我认为您发布的 INSERT 声明没有任何问题。你确定没有特殊字符吗?
  • 特殊字符是什么意思?我不这么认为
  • 您的代码(稍作修改)适用于 SQL Fiddle (sqlfiddle.com/#!9/25331)。我怀疑你在create table 声明中的性格不好。或者两个具有不同表结构的数据库。

标签: mysql sql


【解决方案1】:

我会在foreign key 语句中更改以下内容:

constraint FKResearch foreign key (idResearch) references research(idResearch),
constraint FKProfessor foreign key (idProf) references professor(idProf)

这样,当遇到错误时,MySQL 会告诉你哪些外键约束被违反了。

一旦你知道了,你必须检查列名是否匹配,你试图插入的值在被引用的表中实际上有一个对应的父值,以及两个列的定义是否完全 一样(检查排序规则和编码,大多数时候问题出在那儿)。

【讨论】:

    【解决方案2】:

    查询中的语法没有问题,可能是数据问题。

    在执行插入查询之前,请检查以下内容

    1. 表 'research' 和列 'idResearch' 存在
    2. 表 'professor' 和列 'idProf' 存在
    3. idResearch、idProf 列的参考值(在插入查询中)应分别存在于研究表和教授表中。

    手动截断\删除并删除“应用程序”表,然后再次创建它。然后执行插入查询。

    【讨论】:

      猜你喜欢
      • 2011-11-12
      • 1970-01-01
      • 2016-02-09
      • 1970-01-01
      • 2016-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-18
      相关资源
      最近更新 更多