Mysql Can';t创建表<;表名>;埃尔诺150

Mysql Can';t创建表<;表名>;埃尔诺150,mysql,sql,database,errno,Mysql,Sql,Database,Errno,这是我的SQL脚本 CREATE TABLE tracks( track_id int NOT NULL AUTO_INCREMENT, account_id int, track_name varchar(255), track_path varchar(255), track_art_path varchar(255), track_desc text, primary key(track_id), FOREIGN KEY (account_id) REFERENCES accounts_p

这是我的SQL脚本

CREATE TABLE tracks(
track_id int NOT NULL AUTO_INCREMENT,
account_id int,
track_name varchar(255),
track_path varchar(255),
track_art_path varchar(255),
track_desc text,
primary key(track_id),
FOREIGN KEY (account_id) REFERENCES accounts_profile(accnt_id)
)
我没有看到任何语法错误。一切看起来都很好。我的数据库引擎是innoDB。但是为什么我总是收到这个错误呢

#1005 - Can't create table 'beatbeast.tracks' (errno: 150)
它没有显示错误所在的行。

来自:

如果MySQL在CREATETABLE语句中报告错误号1005, 错误消息指的是错误150,表创建失败 因为外键约束的格式不正确

检查
accounts\u profile.accnt\u id
的数据类型是否与
tracks.account\u id
完全匹配。当前一个是
int
,因此另一个也必须是
int

此外,文件建议称:

SHOW ENGINE INNODB STATUS
在收到错误消息以获得更详细的解释后。

来自:

如果MySQL在CREATETABLE语句中报告错误号1005, 错误消息指的是错误150,表创建失败 因为外键约束的格式不正确

检查
accounts\u profile.accnt\u id
的数据类型是否与
tracks.account\u id
完全匹配。当前一个是
int
,因此另一个也必须是
int

此外,文件建议称:

SHOW ENGINE INNODB STATUS

在您收到错误消息以获得更详细的解释后。

错误号150通常是由于主表的引用列的确切数据类型与引用列的确切数据类型不匹配造成的。在您的情况下,
跟踪。帐户id
是有符号的
INT
,但它引用的列
accounts\u profile.account\u id
INT UNSIGNED
。因此,您还必须使用
INT UNSIGNED
account\u id
创建
tracks
表:

CREATE TABLE tracks(
  track_id int NOT NULL AUTO_INCREMENT,
  account_id int UNSIGNED,
  track_name varchar(255),
  track_path varchar(255),
  track_art_path varchar(255),
  track_desc text,
  primary key(track_id),
  FOREIGN KEY (account_id) REFERENCES accounts_profile(accnt_id)
)

Errno 150通常是主表的引用列的确切数据类型与引用列的确切数据类型不匹配的结果。在您的情况下,
跟踪。帐户id
是有符号的
INT
,但它引用的列
accounts\u profile.account\u id
INT UNSIGNED
。因此,您还必须使用
INT UNSIGNED
account\u id
创建
tracks
表:

CREATE TABLE tracks(
  track_id int NOT NULL AUTO_INCREMENT,
  account_id int UNSIGNED,
  track_name varchar(255),
  track_path varchar(255),
  track_art_path varchar(255),
  track_desc text,
  primary key(track_id),
  FOREIGN KEY (account_id) REFERENCES accounts_profile(accnt_id)
)

第0个问题:是否存在表
帐户\u配置文件
轨道的确切类型。帐户id
帐户配置文件相同。帐户id
?请同时发布
帐户配置文件的结构。如果
accounts\u id
accounts\u profile.accnt\u id
的数据类型不相同(例如一个未签名),FK将失败,错误号为150。accounts\u profile在我的数据库中确实存在。@Michael account\u id未签名。@user962206不符合上面的create语句。这里它是一个有符号的整数,如果在
帐户\u配置文件
中它是无符号的,那么在这里它必须是无符号的。第0个问题:表
帐户\u配置文件
是否存在?
轨道的确切类型。帐户id
帐户配置文件相同。帐户id
?请同时发布
帐户配置文件的结构。如果
accounts\u id
accounts\u profile.accnt\u id
的数据类型不相同(例如一个未签名),FK将失败,错误号为150。accounts\u profile在我的数据库中确实存在。@Michael account\u id未签名。@user962206不符合上面的create语句。在这里它是一个有符号的整数,如果在
帐户\u profile
中它是无符号的,那么在这里它也必须是无符号的