在Windows操作系统上使用MySQL,并在尝试在两个表之间创建外键时出错:
CREATE TABLE tf_traffic_stats (
domain_name char(100) NOT NULL,
session_count int(11) NULL,
search_count int(11) NULL,
click_count int(11) NULL,
revenue float NULL,
rpm float NULL,
cpc float NULL,
traffic_date date NOT NULL DEFAULT '0000-00-00',
PRIMARY KEY(domain_name,traffic_date))
和
CREATE TABLE td_domain_name (
domain_id int(10) UNSIGNED AUTO_INCREMENT NOT NULL,
domain_name char(100) NOT NULL,
update_date date NOT NULL,
PRIMARY KEY(domain_id))
以下语句为我提供了主题行中出现的错误(无法添加或更新子行:外键约束失败):
ALTER TABLE td_domain_name
ADD CONSTRAINT FK_domain_name
FOREIGN KEY(domain_name)
REFERENCES tf_traffic_stats(domain_name)
ON DELETE RESTRICT
ON UPDATE RESTRICT
有人能指出我可能导致错误的正确方向.我也有一个引用td_domain_name.domain_id的外键,但我认为这不应该干扰…
此外,作为此问题的解决方法(失败)(我确信可以轻松解决),我尝试过简单地执行
td_domain_name left outer join tf_traffic_stats on td_domain_name.domain_name=tf_traffic_stats.domain_name
;但是,记录的数量不应该匹配(即,左外连接不成功).
欣赏它!