有条件地忽略行加载数据mysql
作者:互联网
我正在将一个大型数据集(60演出)加载到数据库中.有些记录可以跳过,因为它们包含缺少的值.如何告诉MySQL跳过包含某些(在这种情况下丢失)值的行?例如,我的文件看起来像这样
Value1, Value2
1,2
3,4
,5
9,10
第三行可以跳过而不加载.我知道我可以加载所有内容然后删除它但处理60 gig文件需要很长时间,所以我想节省计算能力.
谢谢
解决方法:
在表上插入前创建一个触发器,检查特定字段是否为空
CREATE TRIGGER before_insert_test
BEFORE INSERT ON test FOR EACH ROW
BEGIN
-- condition to check
IF NEW.Value1 is null THEN
set msg = concat('MyTriggerError: Trying to insert a null value
in trigger_test: ', cast(new.Value1 as char));
signal sqlstate '45000' set message_text = msg;
END IF;
END$$
然后运行Load数据命令
标签:load-data-infile,sql,mysql,if-statement 来源: https://codeday.me/bug/20190826/1730623.html