2014-07-18 78 views
-1

我不知道我做錯了什麼。 MySQL並不是我的東西,所以我想我應該在這裏尋求幫助。MYSQL錯誤1452:外鍵

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

你的'CREATE TABLE'語句應該在別處執行。如果你想要加載數據的表不存在,你必須在[LOAD DATA INFILE]之前創建這個表(http://dev.mysql.com/doc/refman/5.6/en/load- data.html)語句。 – VMai

+0

@VMai我建議你發表你的評論作爲答案。 – Barranka

+0

@Barranka所以我做了。這對我來說太明顯了。 – VMai

回答

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' 

也許你會考慮

要加載操作期間忽略外鍵約束,發出 SET執行LOAD DATA之前,foreign_key_checks = 0語句。

你的外鍵約束walk_id