即使创建了父表,为什么仍显示“未知列”警告?

时间:2019-05-03 10:34:50

标签: mysql

即使已创建父表,该错误仍会显示,

  

“#1054-“字段列表”中的未知列“ B722””。

我遵循了学生指南中的以下代码。请帮忙。

表格:

DROP TABLE IF EXISTS `Aircraft_Type`;

CREATE TABLE IF NOT EXISTS `Aircraft_Type`(
    `AT_ID` varchar(15) NOT NULL,
    `AT_Name` varchar(50) NOT NULL,
    CONSTRAINT AircraftType_pk_ATID PRIMARY KEY (`AT_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

查询:

INSERT INTO `Aircraft_Type` (`AT_ID`, `AT_Name`)
VALUES (B722,Boeing 727-200),(B732,Boeing 737-300);

2 个答案:

答案 0 :(得分:1)

对于值,您需要单引号,对于列名,您需要反斜线

INSERT INTO `Aircraft_Type` (`AT_ID`, `AT_Name`)
VALUES ('722','Boeing 727-200'),('732','Boeing 737-300');

答案 1 :(得分:0)

在MySQL中,除了表名和列名,不要使用反引号。

您需要VALUES ('722', 'Boeing 727-200'),('732','Boeing 737-300')

专业提示:如果您避免在查询中使用反引号,除非表或列名称是保留字,否则SQL代码更易于键入,易于阅读且更易于移植。例如,您的查询可能是:

INSERT INTO Aircraft_Type (AT_ID, AT_Name)
   VALUES ('722','Boeing 727-200'),('732','Boeing 737-300');

但是带有保留字表和列的其他查询可能必须是:

INSERT INTO `group` (`order`, `where`)
   VALUES ('722','Boeing 727-200'),('732','Boeing 737-300');

显示这些项目实际上是名称,而不是SQL语句的一部分。

专业提示:避免在列名或表名中使用保留字。