数据库
首页 > 数据库> > 有条件地忽略行加载数据mysql

有条件地忽略行加载数据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