指定FK时,MYSQL Err#1072不存在于表中

时间:2018-06-17 08:11:15

标签: mysql sql

我是mysql的新手,很抱歉,如果这是一个微不足道的问题。问题是当我创建第二个表时出现错误:

  

iplogger_redirect_key不存在。

这是我的代码:

DROP DATABASE iploggerdb;

CREATE DATABASE iploggerdb;

USE iploggerdb;

CREATE TABLE iplogger_info_table(
    iplogger_redirect_key CHAR(8) PRIMARY KEY,
    access_key CHAR(8) NOT NULL,
    creation_timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    creator_ip VARCHAR(45),
    original_url VARCHAR(2000)
);

CREATE TABLE logs_table(
    id INT(11) AUTO_INCREMENT,
    iplogger_redirect_key FOREIGN KEY (iplogger_redirect_key) REFERENCES iplogger_info_table(iplogger_redirect_key),
    logged_ip VARCHAR(45),
    logged_dns_server VARCHAR(45),
    logged_ip_country_city VARCHAR(200),
    logged_hostname VARCHAR(200),
    logged_user_agent VARCHAR(150),
    logged_referrer VARCHAR(2000),
    logged_ip_timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

1 个答案:

答案 0 :(得分:1)

您需要更正FOREIGN KEY部分:

CREATE TABLE logs_table(
   id INT(11) AUTO_INCREMENT PRIMARY KEY,
   iplogger_redirect_key CHAR(8),
   CONSTRAINT fk_name FOREIGN KEY (iplogger_redirect_key)  
    REFERENCES iplogger_info_table(iplogger_redirect_key),
   ...
)

<强> DBFiddle Demo