SQL 外键语法错误

SQL Syntax error foreign key

我遇到了问题,我尝试连接 2 个数据库 table,如果我查询创建数据库结构,答案是语法错误。

我把代码贴在这里,有人可以帮我吗?

DROP TABLE IF EXISTS album;
CREATE TABLE `album` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `title` varchar(30) DEFAULT NULL,
  `description` varchar(200) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=armscii8;

DROP TABLE IF EXISTS picture;
CREATE TABLE `picture` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `id_album` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  FOREIGN KEY (`id_album`) REFERENCES album(id)
) ENGINE=InnoDB DEFAULT CHARSET=armscii8;

抱歉我的英语不好。

认为您的 id_album 必须有 bean unsigned,与 album

中的 id 相同

只需在外键行中添加 Unsigned 如下:

DROP TABLE IF EXISTS album;
CREATE TABLE `album` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `title` varchar(30) DEFAULT NULL,
  `description` varchar(200) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=armscii8;

DROP TABLE IF EXISTS picture;
CREATE TABLE `picture` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `id_album` int(11) unsigned DEFAULT NULL,
  PRIMARY KEY (`id`),
  FOREIGN KEY (`id_album`) REFERENCES album(id)
) ENGINE=InnoDB DEFAULT CHARSET=armscii8;