【发布时间】:2020-05-31 14:47:40
【问题描述】:
我目前是 SQL 新手。我正在使用 mymysql,当尝试在某些情况下我有空值的列中上传数据时,我得到了主题中的响应。我创建表的脚本是:
CREATE TABLE `transactions` (
`Card_number` varchar(20) NOT NULL,
`idtransactions` int(11) unsigned NOT NULL,
`amount` decimal(8,2) NOT NULL,
`tra_date` date NOT NULL,
`tra_time` time NOT NULL,
`branch_id` INT(3) DEFAULT NULL,
PRIMARY KEY (`idtransactions`),
UNIQUE KEY `idtransactions_UNIQUE` (`idtransactions`),
KEY `branch_id_idx` (`branch_id`),
KEY `Card_number_idx` (`Card_number`),
CONSTRAINT `Card_number` FOREIGN KEY (`Card_number`) REFERENCES `card` (`Card_number`),
CONSTRAINT `branch_id` FOREIGN KEY (`branch_id`) REFERENCES `branch` (`branch_id`)
) ;
我尝试从中上传数据的文件被加密为 UTF8。 如果我输入一个值,例如。对于 uplod 文件中没有值的字段,我得到不同的错误,这些错误涉及到父表的主键。我做错了什么吗? 提前谢谢你。
【问题讨论】:
-
我认为这是您如何导入数据而不是表结构的问题。如果您使用 LOAD DATA 语句或
mysqlimport命令,请尝试将值 \N 用于 null。 -
另外你的唯一键是多余的,它重复了主键。
-
感谢您的回复。正如我所说,我是 sql 的新手,我真的不明白你想用 \N 值说什么。我正在使用以下 LOAD DATA 语句加载文件,如下所示“ LOAD DATA INFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/transactions.csv' INTO TABLE dvisa.transactions CHARACTER SET utf8 FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS;"