我如何在 JetBrains 的 DataGrip 中创建表之间的关系?
How could I create relationships between tables in JetBrains' DataGrip?
我在工作中使用 JetBrains 的 DataGrip。没关系,但我不知道如何创建表之间的关系,如下图所示:
通常:从上下文菜单或按 Ctrl+Alt+U。
如果你找到了这张图片,再往下走一步就是在网站上更深入,你会到达这个页面:
https://www.jetbrains.com/datagrip/features/other.html
并且有关于如何操作的说明。
这是一个两步过程。在第一步中,您必须修改 table 以添加外键约束定义。第二步可以显示table图
首先,在 DataGrip 中右键单击 table 的名称,然后选择 修改 Table。您将看到四个选项卡:Columns、Keys、Indices 和 Foreign Keys 。选择 列 选项卡。右键单击要成为外键的列名,然后选择新建外键。 window 将切换到其 Foreign Keys 选项卡并填写一些信息。填写您的 "target table"。您可能还必须在 SQL 语句的 REFERENCES
短语中写入目标列名称。查看修改Tablewindow中的所有信息,满意后点击"Execute"。
其次,在 DataGrip 中再次右键单击 table 的名称,这次选择 Diagrams > Show Visualisation.您现在应该会看到一个图表,其中显示了原始 table 和引用的 table 之间的关系。
在 DataGrip 帮助中,您可以查看 使用数据库工具 Window 页面,了解其 修改 [=55] 的定义=]、列、索引或主键或外键 部分。那里有一个非常简短的过程描述。
维基百科在其 Defining foreign keys 文章部分有一个示例,在您使用 DataGrip 的 Modify Table window 时可能对您有用。
这个过程我是在DataGrip 2017.1.3做的,不知道其他版本有没有不同。
试试这个创建 3 个表的 SQL 小脚本。我想你会发现这项工作很好。
CREATE TABLE product (
category INT NOT NULL, id INT NOT NULL,
price DECIMAL,
PRIMARY KEY(category, id)
);
CREATE TABLE customer (
id INT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE product_order (
no INT NOT NULL AUTO_INCREMENT,
product_category INT NOT NULL,
product_id INT NOT NULL,
customer_id INT NOT NULL,
PRIMARY KEY(no),
INDEX (product_category, product_id),
INDEX (customer_id),
FOREIGN KEY (product_category, product_id)
REFERENCES product(category, id)
ON UPDATE CASCADE ON DELETE RESTRICT,
FOREIGN KEY (customer_id)
REFERENCES customer(id)
) ;
我在工作中使用 JetBrains 的 DataGrip。没关系,但我不知道如何创建表之间的关系,如下图所示:
通常:从上下文菜单或按 Ctrl+Alt+U。
如果你找到了这张图片,再往下走一步就是在网站上更深入,你会到达这个页面: https://www.jetbrains.com/datagrip/features/other.html
并且有关于如何操作的说明。
这是一个两步过程。在第一步中,您必须修改 table 以添加外键约束定义。第二步可以显示table图
首先,在 DataGrip 中右键单击 table 的名称,然后选择 修改 Table。您将看到四个选项卡:Columns、Keys、Indices 和 Foreign Keys 。选择 列 选项卡。右键单击要成为外键的列名,然后选择新建外键。 window 将切换到其 Foreign Keys 选项卡并填写一些信息。填写您的 "target table"。您可能还必须在 SQL 语句的 REFERENCES
短语中写入目标列名称。查看修改Tablewindow中的所有信息,满意后点击"Execute"。
其次,在 DataGrip 中再次右键单击 table 的名称,这次选择 Diagrams > Show Visualisation.您现在应该会看到一个图表,其中显示了原始 table 和引用的 table 之间的关系。
在 DataGrip 帮助中,您可以查看 使用数据库工具 Window 页面,了解其 修改 [=55] 的定义=]、列、索引或主键或外键 部分。那里有一个非常简短的过程描述。
维基百科在其 Defining foreign keys 文章部分有一个示例,在您使用 DataGrip 的 Modify Table window 时可能对您有用。
这个过程我是在DataGrip 2017.1.3做的,不知道其他版本有没有不同。
试试这个创建 3 个表的 SQL 小脚本。我想你会发现这项工作很好。
CREATE TABLE product (
category INT NOT NULL, id INT NOT NULL,
price DECIMAL,
PRIMARY KEY(category, id)
);
CREATE TABLE customer (
id INT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE product_order (
no INT NOT NULL AUTO_INCREMENT,
product_category INT NOT NULL,
product_id INT NOT NULL,
customer_id INT NOT NULL,
PRIMARY KEY(no),
INDEX (product_category, product_id),
INDEX (customer_id),
FOREIGN KEY (product_category, product_id)
REFERENCES product(category, id)
ON UPDATE CASCADE ON DELETE RESTRICT,
FOREIGN KEY (customer_id)
REFERENCES customer(id)
) ;