引用时无法在mysql中创建表

引用时无法在mysql中创建表,mysql,sql,create-table,Mysql,Sql,Create Table,数据库中确实存在带有键aid的ADDR表,但运行此命令时出错 错误: CREATE TABLE `DB`.`ORDER` ( `oid` INT NOT NULL UNIQUE AUTO_INCREMENT, `createdAt` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, `oValue` FLOAT NOT NULL, `no`

数据库中确实存在带有键
aid
的ADDR表,但运行此命令时出错

错误:

CREATE TABLE `DB`.`ORDER` (
    `oid`               INT NOT NULL UNIQUE AUTO_INCREMENT,
    `createdAt`         TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
    `oValue`            FLOAT NOT NULL,
    `no`                INT NOT NULL,
    `qty`               INT NOT NULL,
    `status`            VARCHAR(20) NOT NULL,
    `refundStatus`      VARCHAR(10),
    `refundId`          INT,
    `paymentStatus`     VARCHAR(10),
    `paymentId`         INT,
    `aid`               INT,
    PRIMARY KEY(`oid`),
    FOREIGN KEY `aid` REFERENCES ADDR(`aid`)
)
ENGINE = InnoDB;
我无法理解为什么在这种情况下会发生这种情况,而在其他情况下不会发生这种情况。

替换:

CREATE TABLE `DB`.`ORDER` (
    `oid`               INT NOT NULL UNIQUE AUTO_INCREMENT,
    `createdAt`         TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
    `oValue`            FLOAT NOT NULL,
    `no`                INT NOT NULL,
    `qty`               INT NOT NULL,
    `status`            VARCHAR(20) NOT NULL,
    `refundStatus`      VARCHAR(10),
    `refundId`          INT,
    `paymentStatus`     VARCHAR(10),
    `paymentId`         INT,
    `aid`               INT,
    PRIMARY KEY(`oid`),
    FOREIGN KEY `aid` REFERENCES ADDR(`aid`)
)
ENGINE = InnoDB
MySQL said: Documentation

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'REFERENCES ADDR(`aid`)
)
ENGINE = InnoDB' at line 14
与:

或使用官方标准SQL语法:


需要外键列周围的括号
外键(aid)引用
我在其他查询中没有注意到括号。非常感谢
FOREIGN KEY `aid` REFERENCES ADDR(`aid`)
FOREIGN KEY (`aid`) REFERENCES ADDR(`aid`)
constraint fk1 FOREIGN KEY (`aid`) REFERENCES ADDR (`aid`)