我在MySQL数据库中有两个设计不良的表。这些表包含很长的字符串。

table1中,字段unqiue_string_1是不正确的:

table1
unique_string_1 | long_string_1 | long_string | ..


table2中,字段unqiue_string_1不是唯一的。

table2
unique_string_1 | .. | more strings..
------------------------------------------
sample_string_1 | .. | more strings..
sample_string_1 | .. | more strings..
sample_string_1 | .. | more strings..
sample_string_3 | .. | more strings..
sample_string_3 | .. | more strings..
sample_string_3 | .. | more strings..
sample_string_4 | .. | more strings..
sample_string_4 | .. | more strings..


现在,当我尝试检索大型数据集时,我的phpMyAdmin连接超时。我想通过对事物建立索引并建立外键关系来加快查询速度。

首先,我这样做:

CREATE UNIQUE INDEX my_id ON table1(unqiue_string_1)


现在,我想要一个SQL语句来创建外键。我已经试过了:

ALTER TABLE table2
ADD FOREIGN KEY (`my_id`)
REFERENCES table(`my_id`);


我认为我缺少某种约束,因此sample_string_1table2中具有与table1中的索引相等的外键。我想念什么?

最佳答案

小错误是在REFERENCES表中:Table应该是表名:

ALTER TABLE table2
ADD FOREIGN KEY (`unique_string_1`) REFERENCES table1(`unique_string_1`);

10-01 16:55
查看更多