gpt4 book ai didi

mysql - 为什么 mySql 不让我声明外键?

转载 作者:行者123 更新时间:2023-12-01 00:04:56 26 4
gpt4 key购买 nike

所以我几乎查了这两天,我似乎无法弄清楚mysql不允许我添加外键是什么。当我运行包含外键的第二个表的代码时,出现以下错误:

#1072 - 表中不存在键列 'album'

我很确定我的代码中没有任何语法错误,因为我现在已经修改了几次。

我之前在 stakOVF 看到过同样的问题,但是这些问题的问题是非常明显的语法错误,但是这些问题中的解决方案与我的问题无关,没有解决我的问题。

这是我正在运行的代码,上面的错误已返回。提前致谢。

    CREATE TABLE ‘Album’(
‘id’ INT AUTO_INCREMENT PRIMARY KEY ,
‘name’ VARCHAR( 35 ) NOT NULL
) ENGINE = InnoDB;

上面的代码运行没有问题,但是当我运行下面的代码时出现错误

    CREATE TABLE ‘Picture’(
‘id_pk’ INT AUTO_INCREMENT PRIMARY KEY ,
‘album’ INT,
‘pictureURL’ VARCHAR( 270 ) NOT NULL ,
‘name’ VARCHAR( 35 ) NOT NULL ,
CONSTRAINT album_fk FOREIGN KEY ( album ) REFERENCES Album( id )
) ENGINE = InnoDB;

我摆弄了 CONSTRAINT 行,我也有以下形式的 FOREIGN KEY (album) REFERENCES Album(id),即没有前置约束。

谢谢大家,毕竟有一个语法错误,就像有人说的那样与有趣的引号有关,删除它们,就像一个魅力。非常感谢!

最佳答案

首先,您不需要任何引号,因为使用了任何保留字。

我尝试在不使用引号的情况下执行这些 sql 查询,结果非常有效。

    CREATE TABLE Album(
id INT AUTO_INCREMENT PRIMARY KEY ,
name VARCHAR( 35 ) NOT NULL
) ENGINE = InnoDB;


CREATE TABLE Picture(
id_pk INT AUTO_INCREMENT PRIMARY KEY ,
album INT,
pictureURL VARCHAR( 270 ) NOT NULL ,
name VARCHAR( 35 ) NOT NULL ,
CONSTRAINT album_fk FOREIGN KEY ( album ) REFERENCES Album( id )
) ENGINE = InnoDB;

创建表“相册”使用“Album”名称而不是 Album 创建一个表,使用“id”和“name”字段而不是 id 和 name 等等

关于mysql - 为什么 mySql 不让我声明外键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17363236/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com