我是 MySQL WB 的新手,所以我可以通过在依赖表之间添加关系来创建外键。
但是如何创建复合键呢? 例如我有这张表 sql
CREATE TABLE TASKS
(
TEST_ID NUMBER(6) CONSTRAINT FK_TASKS_TESTS REFERENCES TESTS(TEST_ID),
TASK_ID NUMBER(3),
MAX_POINTS NUMBER,
CONSTRAINT PK_TASKS PRIMARY KEY (TEST_ID, TASK_ID)
);
是否有一个选项,或者应该以其他方式创建?
最佳答案
问题归结为唯一性。如果您知道 TASK_ID 是唯一的,那么最好将单个列作为您的主键。 MySQL 允许多列主键,但如果 TASK_ID 是唯一的,只需将其设为主键并在 TEST_ID 上添加另一个索引。主键的语法是:
CREATE TABLE TASKS
(
TEST_ID NUMBER(6),
TASK_ID NUMBER(3),
MAX_POINTS NUMBER,
PRIMARY_KEY(TASK_ID) -- OR PRIMARY_KEY(TASK_ID, TEST_ID) for the composite key
);
参见 this discussion获取更多信息。
关于mysql - 如何创建复合键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9479524/