如果未能成功插入表,请通过CAST数据更正数据类型

时间:2018-09-25 13:17:17

标签: mysql

我有很多不良数据。我可以轻松地将此数据导入数据库并使用数据类型varchar。 但是,如果我希望CAST数据更正格式,则由于数据不正确,我会遇到问题。

因为我必须修复此数据,所以我需要以CAST正确的格式获取行,并将这些行“固定”表放入,而无法CAST的行则必须插入“失败”表中。 / p>

我认为做到这一点的最佳方法是使用存储过程,但是有人可以向我展示如何做到这一点的例子吗? 我正在使用MySQL数据库。

1 个答案:

答案 0 :(得分:0)

未经测试!我将尝试将VARCHAR插入INT列。

DELIMITER $$

CREATE PROCEDURE insert_article_tags_2(IN data VARCHAR(100))
BEGIN

DECLARE  has_error INT;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET has_error = 1;

 INSERT INTO mytable (id)
   VALUES(data);

 IF has_error = 1 THEN
    INSERT INTO mytable_error (rawdata) VALUES(data);
 END IF;

END;
$$