我有很多不良数据。我可以轻松地将此数据导入数据库并使用数据类型varchar。 但是,如果我希望CAST数据更正格式,则由于数据不正确,我会遇到问题。
因为我必须修复此数据,所以我需要以CAST正确的格式获取行,并将这些行“固定”表放入,而无法CAST的行则必须插入“失败”表中。 / p>
我认为做到这一点的最佳方法是使用存储过程,但是有人可以向我展示如何做到这一点的例子吗? 我正在使用MySQL数据库。
答案 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;
$$