我一直遇到这个奇怪的问题,我的DataGrip图表生成不展示表之间的关系(也就是说,关系箭头没有出现)。
这是我所说的内容的图片。
我是这样创建DataGrip图表的:右键单击我的模式-->图表-->显示可视化。每次得到的结果都是上面的图片。
如何修复以显示箭头?在你问之前,我已经在我的架构表中有引用其他表中其他列的外键。
我一直遇到这个奇怪的问题,我的DataGrip图表生成不展示表之间的关系(也就是说,关系箭头没有出现)。
这是我所说的内容的图片。
我是这样创建DataGrip图表的:右键单击我的模式-->图表-->显示可视化。每次得到的结果都是上面的图片。
如何修复以显示箭头?在你问之前,我已经在我的架构表中有引用其他表中其他列的外键。
确保外键的声明正确。
在左侧的数据库详细信息视图中检查列状态。
如果您使用的是MySQL 8,则在创建任何表后可能需要添加ENGINE=INNODB
。
例如:
CREATE TABLE person
(
....
) ENGINE = INNODB;
CREATE TABLE account(
user_id SERIAL PRIMARY KEY,
username VARCHAR(50) UNIQUE NOT NULL,
password VARCHAR(50) NOT NULL,
email VARCHAR(250) UNIQUE NOT NULL,
created_on TIMESTAMP NOT NULL,
last_login TIMESTAMP
);
CREATE TABLE job(
job_id SERIAL PRIMARY KEY,
job_name VARCHAR(200) UNIQUE NOT NULL
);
# now a table which connects the two above
CREATE TABLE account_job(
user_id INTEGER REFERENCES account(user_id),
job_id INTEGER REFERENCES job(job_id),
hire_date TIMESTAMP
);
这个查询在使用PostgresSQL和MYSQL时都可以无错误地执行,但是对于MYSQL来说,表之间的关系不会显示或者不起作用。
我不得不将查询的最后一个命令更改如下:
CREATE TABLE account_job(
user_id BIGINT UNSIGNED,
FOREIGN KEY (user_id) REFERENCES account(user_id),
job_id BIGINT UNSIGNED,
FOREIGN KEY (job_id) REFERENCES job(job_id),
hire_date TIMESTAMP
);