ERROR 5025 (HY000): Insert has filtered data in strict mode, tracking_url=http://IP

通过http api批量插入数据的时候报Reason: null value for not null column, column=xxx. src line: [];

解决方法:

检查是否有null值存在
增加数据库字段长度
如下语句更改长度:

ALTER TABLE 表名
MODIFY COLUMN 字段名 VARCHAR(32) DEFAULT '';

如果能够允许一定为错误率可以,即报错的行插入失败,其它行插入成功,可以关闭enable_insert_strict,关闭方式:SET enable_insert_strict = false;

enable_insert_strict参数是session参数,执行SET enable_insert_strict = false\true;后会立刻生效,但断开当前连接后就会失效,若需要全局修改,可以加上global,例如全局关闭:

mysql> SET global enable_insert_strict = false;

strict mode说明:

每次insert
into操作都是一次导入事务,事务的定义大家并不陌生,简单说就是这次导入操作要么整批成功,要么整批失败,不会说存在一次导入操作有的数据导入成功有的不成功的情况。实际业务中,我们的数据可能不是那么的规整,那么通常我们在导入时就会设置一个容错率来忽视一定比例的脏数据,StarRocks的主要导入方式中都有容错类的参数,但insert方式是没法处理容错率这个逻辑的,所以StarRocks设计了严格模式参数enable_insert_strict:

enable_insert_strict:当该参数为false时,表示一次insert任务只要有一条或以上数据被正确导入,就返回成功。当该参数设置为true时,表示但凡有一条数据错误,则任务整体失败。该参数默认为true。可通过SET
enable_insert_strict = false; 来设置。

参考:https://blog.csdn.net/ult_me/article/details/122823687
 

你可能感兴趣的:(DorisDB,数据库)