У меня много плохих данных. Я могу легко импортировать эти данные в базу данных и использовать тип данных varchar. Однако, если я хочу, чтобы данные CAST исправили формат, у меня проблемы, из-за плохих данных.
Поскольку мне нужно исправить эти данные, мне нужно взять строки, чтобы я мог CAST корректный формат и поместить эти строки "исправлены" -table, а те строки, которые не имеют CAST, мне нужно вставить в "failed" -table.
Я думаю, что лучший способ сделать это - использовать хранимую процедуру, но может ли кто-нибудь показать мне пример, как это сделать? Я использую базу данных MySQL.
Непроверенные! Я попытаюсь вставить 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;
$$