Mysql Can';t创建表<;表名>;埃尔诺150
这是我的SQL脚本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
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
中它是无符号的,那么在这里它也必须是无符号的