昨晚,我在SQL 中运行了phpMyAdmin命令,非常,类似于下面的命令来设置players表和由foreign key链接的games表。它工作正常,使games表中的D6成为foreign key。
CREATE TABLE players(
google_id VARCHAR(36) PRIMARY KEY,
display_name VARCHAR(255) NOT NULL,
given_name VARCHAR(255) NOT NULL,
family_name VARCHAR(255) NOT NULL,
picture_url VARCHAR(2083) NOT NULL,
leaderboard_initials VARCHAR(40),
operating_system VARCHAR(255) NOT NULL,
modified TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE games(
game_id VARCHAR(255) PRIMARY KEY,
google_id VARCHAR(36) NOT NULL,
won INT(1) NOT NULL,
score INT(10) NOT NULL,
num_in_code INT(2) NOT NULL,
num_colours INT(2) NOT NULL,
num_guesses INT(2) NOT NULL,
turn INT(2) NOT NULL,
rank INT(10) NOT NULL,
modified TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);-然后让google_id成为游戏中的外键:
ALTER TABLE
games ADD FOREIGN KEY(google_id) REFERENCES role(google_id);今天,第三个命令给出了以下错误:
Error
SQL query:
ALTER TABLE
games ADD FOREIGN KEY(google_id) REFERENCES role(google_id)
MySQL said:
#1215 - Cannot add foreign key constraint我的google_id是完全相同的数据类型,所以这个答案对我没有帮助
我也读过这个答案,但没有发现我的三个查询有什么问题。
有人能发现我的错误吗?
编辑:对不起,这是一个错误。role应该是players
发布于 2018-12-30 17:08:07
如果游戏表引用的是父表"players“中的google_id,则使用以下语法(除非根据SQL语句使用”角色“表建立外键):
ALTER TABLE
games ADD FOREIGN KEY(google_id) REFERENCES players(google_id);此外,请检查角色表的DDL (如果存在)-数据类型、列google_id的宽度以及这两个表的mysql引擎。
https://dba.stackexchange.com/questions/226023
复制相似问题