MYSQL错误1452:外键

时间:2014-07-18 22:32:39

标签: mysql mysql-error-1452

我不确定我做错了什么。 MySQL并不是我的事情所以我认为我应该在这里寻求帮助。

LOAD DATA LOCAL INFILE "D:/Database/FMA/walkdb_dataprogProgrammeCREATE TABLE      `Programme` (
`programme_id` int(11) NOT NULL AUTO_INCREMENT,
`walk_id` int(11) NOT NULL,
`programme_date` text NOT NULL,
`programme_starttime` date NOT NULL,
`programme_maxpart` int(3) NOT NULL,
 PRIMARY KEY (`programme_id`),
 KEY `walkprog_id_idx` (`walk_id`),
 CONSTRAINT `walkprog_id` FOREIGN KEY (`walk_id`) REFERENCES `Walk` (`walk_id`)
 ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;
.csv"
INTO TABLE Programme 
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n' 

您还需要更多详情吗?

1 个答案:

答案 0 :(得分:2)

您已将CREATE TABLE声明混合到LOAD DATA INFILE声明中。如果你想将这两者结合起来,你必须首先创建你的表,因为LOAD DATA INFILE只会导入现有的表。

我认为它应该是:

CREATE TABLE `Programme` (
    `programme_id` int(11) NOT NULL AUTO_INCREMENT,
    `walk_id` int(11) NOT NULL,
    `programme_date` text NOT NULL,
    `programme_starttime` date NOT NULL,
    `programme_maxpart` int(3) NOT NULL,
    PRIMARY KEY (`programme_id`),
    KEY `walkprog_id_idx` (`walk_id`),
    CONSTRAINT `walkprog_id` FOREIGN KEY (`walk_id`) REFERENCES `Walk` (`walk_id`)
 ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;

接着是

LOAD DATA LOCAL INFILE "D:/Database/FMA/walkdb_dataprogProgramme.csv"
INTO TABLE Programme 
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n'

也许你会考虑

  

要在加载操作期间忽略外键约束,请发出a   在执行LOAD DATA之前设置foreign_key_checks = 0语句。

表示walk_id上的外键约束。