我正在尝试使用Workbench将csv上传到MySQL,到目前为止,我的所有尝试都证明没有结果。
我最初尝试使用“上传”功能,但它抱怨我有任何空/空字段。
我现在正在尝试使用此功能:
LOAD DATA infile 'C:\\temp\\SubEq.csv'
INTO TABLE cas_asset_register.subequipment
fields terminated BY ','
lines terminated BY '\n'
(seid, parentme, @vparentse, name, status, description, equipmenttype, comments, removed, active, @vsupplierid)
SET
ParentSE = nullif(@vparentse,''),
SupplierId = nullif(@vsupplierid,'')
;
但同样,它似乎在抱怨(可能)同样的事情:
错误代码:1261。第1行不包含所有列的数据
我已经查看了this和this问题的答案,但都没有解决我的问题。
表创建查询:
CREATE TABLE `subequipment` (
`SEId` int(11) NOT NULL AUTO_INCREMENT,
`ParentME` int(11) DEFAULT NULL,
`ParentSE` int(11) DEFAULT NULL,
`Name` varchar(255) DEFAULT NULL,
`Status` varchar(100) DEFAULT NULL,
`Description` varchar(255) DEFAULT NULL,
`EquipmentType` int(11) DEFAULT NULL,
`Comments` text,
`Removed` tinyint(1) NOT NULL DEFAULT '0',
`Active` tinyint(1) DEFAULT '1',
`SupplierId` int(11) DEFAULT NULL,
PRIMARY KEY (`SEId`),
UNIQUE KEY `Unique_Constraint_ME` (`Name`,`ParentME`,`Active`),
UNIQUE KEY `Unique_Constraint_SE` (`Name`,`ParentSE`,`Active`),
KEY `ParentME` (`ParentME`),
KEY `ParentSE` (`ParentSE`),
KEY `EquipmentType` (`EquipmentType`),
KEY `fk_subequipment_supplierequipment` (`SupplierId`),
KEY `fk_subequipment_status_idx` (`Status`),
CONSTRAINT `fk_subequipment_majorequipment` FOREIGN KEY (`ParentME`) REFERENCES `majorequipment` (`MEId`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `fk_subequipment_status` FOREIGN KEY (`Status`) REFERENCES `componentstatus` (`StatusName`) ON UPDATE CASCADE,
CONSTRAINT `fk_subequipment_subequipment` FOREIGN KEY (`ParentSE`) REFERENCES `subequipment` (`SEId`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `fk_subequipment_supplierequipment` FOREIGN KEY (`SupplierId`) REFERENCES `supplierinfo_equipment` (`SupplierId`) ON UPDATE CASCADE,
CONSTRAINT `fk_subequipment_userdefinedcode` FOREIGN KEY (`EquipmentType`) REFERENCES `userdefinedcode` (`UDCId`) ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
正如您从我的上传查询中看到的那样,我期望“ParentSE”和“SupplierId”为空,即使它们是外键字段。
csv的每一行都已正确编入索引(即 足够的字段以匹配表格):
1,1,,P7YCGPF,Abg va hfr,Nfcver Npre Yncgbc,13,"Qngr npdhverq: 61/52/7566
Zbqry: 0297T
Frevny Ahzore: YKE057551588125P16156",0,1,
出了什么问题?
答案 0 :(得分:1)
csv文件中任何字段中的数据都包含逗号吗?当您尝试将其上传到MySQL时,这会搞砸现场终止标准。如果是这种情况,请尝试将其另存为制表符分隔的txt文件并替换
fields terminated BY ','
与
fields terminated BY '\t'
很抱歉,如果这不是您问题的正确答案,我想将此作为评论发布,但我的声誉不够高:P
答案 1 :(得分:0)
我遇到了同样的问题,并且比较了CSV文件中的列和我数据库中的表解决了这个问题。列数,列类型以及在某些情况下字符串类型的空值(例如,""对于字符串类型)应该相同。
答案 2 :(得分:0)
我在CSV文件的最后一行中遇到了相同的错误。这可能无法解决您的问题,但可以解决我的问题,希望对您有所帮助。
对我来说,我需要在文件的末尾使用回车符来换行。立即导入而没有错误
答案 3 :(得分:0)
对我来说,问题是该文件必须用制表符分隔。我读到一些用户报告说文件必须用分号分隔。