Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql Can';不要创建表,因为它们都相互关联。外键约束的格式不正确_Mysql_Sql_Foreign Keys - Fatal编程技术网

Mysql Can';不要创建表,因为它们都相互关联。外键约束的格式不正确

Mysql Can';不要创建表,因为它们都相互关联。外键约束的格式不正确,mysql,sql,foreign-keys,Mysql,Sql,Foreign Keys,我有三张相互依赖的桌子。因此,我无法创建表,因为外键引用无法在我放置create语句的任何位置找到引用表 错误1005-Kann Tabellecoopr\u localcharactersnicht erzeugen (错误150“外键约束格式不正确”) 只选择一个表作为没有外键约束的主表,另外两个表作为依赖于主表且具有外键的互补表,如以下示例所示: CREATE TABLE tblAddress ( AddressID INT NOT NULL Primary Key,

我有三张相互依赖的桌子。因此,我无法创建表,因为外键引用无法在我放置create语句的任何位置找到引用表

错误1005-Kann Tabelle
coopr\u local
characters
nicht erzeugen
(错误150“外键约束格式不正确”)


只选择一个表作为没有外键约束的主表,另外两个表作为依赖于主表且具有外键的互补表,如以下示例所示:

    CREATE TABLE tblAddress (
    AddressID INT NOT NULL Primary Key,
    Country VARCHAR(1000),
    State VARCHAR(1000),
    City VARCHAR(1000),
    Zip VARCHAR(10),
    AddrLine1 VARCHAR(1000),
    AddrLine2 VARCHAR(1000)
)

CREATE TABLE PersonA (
    PersonID INT NOT NULL Primary Key,
    FirstName VARCHAR(200),
    LastName VARCHAR(200),
    --OtherColumns
    AddressID INT,

    CONSTRAINT fk_Address FOREIGN KEY (AddressID)
        REFERENCES tblAddress(AddressID)
)

CREATE TABLE PersonB (
    PersonID INT NOT NULL Primary Key,
    FirstName VARCHAR(200),
    LastName VARCHAR(200),
    --OtherColumns
    AddressID INT,

    CONSTRAINT fk_Address FOREIGN KEY (AddressID)
        REFERENCES tblAddress(AddressID)
)

首先创建所有表,然后添加外键


您没有描述您试图建模的内容,但根据我的猜测,您可能想建模一些游戏,其中有可以分组的角色

为此,你会有一张小队的桌子:

CREATE TABLE squads 
             (id integer
                 NOT NULL
                 AUTO_INCREMENT,
              name varchar(255),
              callsign varchar(10),
              PRIMARY KEY (id));
如果角色只能是一个团队的成员,则在角色表中有对该团队的引用:

CREATE TABLE characters 
             (id integer
                 NOT NULL
                 AUTO_INCREMENT,
              character_0 text,
              character_1 text,
              character_2 text,
              squad integer,
              PRIMARY KEY (id),
              FOREIGN KEY (squad)
                          REFERENCES squads
                                     (id));
CREATE TABLE characters 
             (id integer
                 NOT NULL
                 AUTO_INCREMENT,
              character_0 text,
              character_1 text,
              character_2 text,
              PRIMARY KEY (id));
在这种情况下,一个角色不能属于多个团队,你已经完成了,不需要另一张桌子

如果角色可能属于多个团队,则在角色表中没有对团队的引用:

CREATE TABLE characters 
             (id integer
                 NOT NULL
                 AUTO_INCREMENT,
              character_0 text,
              character_1 text,
              character_2 text,
              squad integer,
              PRIMARY KEY (id),
              FOREIGN KEY (squad)
                          REFERENCES squads
                                     (id));
CREATE TABLE characters 
             (id integer
                 NOT NULL
                 AUTO_INCREMENT,
              character_0 text,
              character_1 text,
              character_2 text,
              PRIMARY KEY (id));
与角色表中对团队的引用不同,您将有第三个表,一个链接角色和团队的表:

CREATE TABLE squads_characters
             (squad integer,
              character integer,
              PRIMARY KEY (squad,
                           character),
              FOREIGN KEY (squad)
                          REFERENCES squads
                                     (id),
              FOREIGN KEY (character)
                          REFERENCES characters
                                     (id));