在过去的两天里,我自己才开始学习sql,现在我遇到了一个使用外键约束在不同表上链接列的问题。下面是我的代码。
CREATE TABLE analytics (
id INT NOT NULL,
status BOOLEAN,
server_id INT, /* link with server info*/
source_id INT, /*link with input source*/
ext VARCHAR(5),
startframe_id_x INT,
endframe_id_x INT,
mask VARCHAR(20),
label VARCHAR(20),
countline INT,
det_deviceid INT,
processing_period TIME,
PRIMARY KEY(id),
FOREIGN KEY (server_id) REFERENCES server_info(id),
FOREIGN KEY (source_id) REFERENCES input_source(id)
);
CREATE TABLE statistics (
id INT NOT NULL,
source_id INT, /*link with input source*/
analytic_id INT, /*link with analytic*/
time_recorded TIMESTAMP,
duration TIME, /*link with analytics processing period*/
counter INT,
PRIMARY KEY (id),
FOREIGN KEY (source_id) REFERENCES input_source(id),
FOREIGN KEY (analytic_id) REFERENCES analytics(id),
FOREIGN KEY (duration) REFERENCES analytics(processing_period)
);
问题发生在这条线上
FOREIGN KEY (duration) REFERENCES analytics(processing_period)
我不确定,花了无数个小时寻找解决方案,但仍然无法解决它。
它发出这样的错误 "ER_FK_INDEX_PARENT: Failed to add the foreign key constraint. Missing index for constraint 'statistics_ibfk_3' in the referenced table 'analytics'"
任何人都能说出这个问题发生的原因吗?我用popsql来编辑我的代码和使用mysql数据库。
希望能有一些解释或解决办法。
1条答案
按热度按时间8wigbo561#
您的第二张table应该如下所示:
请注意
duration
已删除。如果需要处理周期,则使用JOIN
与…相匹配analytics
table。