簡體   English   中英

引用時無法在 mysql 中創建表

[英]Unable to create table in mysql while referencing

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;

數據庫中確實存在帶有密鑰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
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

我無法弄清楚為什么在這種情況下會發生而不是在其他情況下發生。

代替:

FOREIGN KEY `aid` REFERENCES ADDR(`aid`)

和:

FOREIGN KEY (`aid`) REFERENCES ADDR(`aid`)

或使用官方標准 SQL語法:

constraint fk1 FOREIGN KEY (`aid`) REFERENCES ADDR (`aid`)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM