首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用mysql和限定错误进行验证

使用mysql和限定错误进行验证
EN

Stack Overflow用户
提问于 2013-07-25 06:47:40
回答 1查看 89关注 0票数 0

除了我关于csv import最佳解决方案的问题外,我还搜索验证方法,其中我只使用msyql获得合格的错误。简介:

我通过加载数据INFILE将数据导入到临时表中,然后需要验证这些数据。

最糟糕的方法是选择几个过滤器,例如:

代码语言:javascript
运行
复制
SELECT * from temp_table WHERE col1 not in (1,2) OR col2 REGEXP '[0-9]+' etc.

也很管用。但是我想知道最快的方法来保存列为什么会找到这一行,也许是用箱子和一个反方法。类似的?

这样,我就可以返回一个限定错误,例如:“列x只能包含y”。

EN

回答 1

Stack Overflow用户

发布于 2013-07-25 07:16:59

在从CSV文件加载数据之前,可以在temp_table上设置一个触发器。

触发器要么将一行插入永久表(如果它通过验证),要么插入错误表(如果没有)。

代码语言:javascript
运行
复制
DELIMITER //

CREATE TRIGGER validating_insert
AFTER INSERT ON temp_table FOR EACH ROW
BEGIN
  IF col1 NOT IN (1,2) OR col2 REGEXP '[0-9]+' THEN
    INSERT INTO permanent_table VALUES (NEW.col1, NEW.col2);
  ELSE
    INSERT INTO error_table VALUES (NEW.col1, NEW.col2, 'any reason goes here');
  END IF;
END// 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17850904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档