【发布时间】:2018-09-08 14:41:46
【问题描述】:
所以我有 2 张桌子。路径表具有与媒体表“id”连接的外键“media_id”。每个媒体可以有多个路径。这一切都很好。
当我尝试使用 csv 导出和导入这些表时,问题就出现了。我可以导出它们,但是当我去导入它们(第一个媒体表)时,媒体表中的主键“id”设置为自动递增,当使用 LOAD DATA INFILE 导入媒体表时,它将生成新的“id”就其本身而言,因此我将失去与路径表的任何连接。
$sql = "CREATE TABLE $media_table (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) DEFAULT NULL,
`description` varchar(2000) DEFAULT NULL,
PRIMARY KEY (`id`),
) $charset_collate;";
$sql = "CREATE TABLE $path_table (
`id` int(11) NOT NULL AUTO_INCREMENT,
`path` varchar(500) DEFAULT NULL,
`def` varchar(50) DEFAULT NULL,
`media_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
INDEX `media_id` (`media_id`),
CONSTRAINT `mvp_path_ibfk_1` FOREIGN KEY (`media_id`) REFERENCES {$media_table} (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) $charset_collate;";
这里是查询:
$query = "LOAD DATA INFILE '$csv' INTO TABLE {$table}
FIELDS OPTIONALLY ENCLOSED BY '^'
TERMINATED BY '|'
ESCAPED BY ''
LINES TERMINATED BY '\n'
IGNORE 1 LINES";
我的数据库设计有问题吗?我该如何改进或解决这个问题?
【问题讨论】:
标签: php mysql foreign-keys