引用另一个外键时,SQL“外键约束格式不正确”

时间:2018-11-15 22:49:24

标签: sql mariadb

我试图为外键创建一个外键(我认为这是可能的),但我不断收到错误消息,指出约束的形成不正确

CREATE TABLE Staff (
    ssn INT, 
    name VARCHAR(127), 
    gender VARCHAR(127), 
    age TINYINT UNSIGNED, 
    address VARCHAR(255), 
    phone_number CHAR(12), 
    wage FLOAT(3,2), 
    PRIMARY KEY (ssn));
CREATE TABLE Admininstration (
    ssn INT, 
    FOREIGN KEY (ssn) REFERENCES Staff(ssn), 
    PRIMARY KEY (ssn));
CREATE TABLE Wards (
    ward_clerk INT,
    ward_id CHAR(2), 
    floor_number TINYINT, 
    FOREIGN KEY (ward_clerk) REFERENCES Administration(ssn), 
    PRIMARY KEY (ward_id)
);
ERROR 1005 (HY000): Can't create table `HospitalManagement`.`Wards`
       (errno: 150 "Foreign key constraint is incorrectly formed")

如果我更改最后一条语句以引用Staff表

CREATE TABLE Wards (
    ward_clerk INT, 
    ward_id CHAR(2), 
    floor_number TINYINT, 
    FOREIGN KEY (ward_clerk) REFERENCES Staff(ssn), 
    PRIMARY KEY (ward_id)
);

它可以工作,但这不是我想要的。如果这不可能,我知道我将如何进行更改,但我想这样做。任何建议表示赞赏。

1 个答案:

答案 0 :(得分:1)

在适当的地方,创建列import { AdalService } from 'ng2-adal'

请注意存储SSN的严重安全隐患。

NOT NULL在-9.99到9.99之间?便宜的。请勿使用wage来赚钱;使用FLOAT