我正在审查/重新设计/重构数据库,并且希望创建一个新的数据库,以更智能的方式存储几乎相同的数据。 “遗留”数据库中的一个问题是它没有正确使用密钥和索引,所以在没有重复条目的地方应该没有。MySQL:DECLARE CONTINUE HANDLER继续出现错误,打印警告
我写了一个python脚本,它从遗留数据库中读取数据,并生成一个SQL脚本,然后使用大量非常相似的SQL INSERT语句将这些值从旧数据库插入到新数据库中。 SQL脚本每次遇到重复条目时都会停止并显示错误消息
ERROR 1062 (23000) at line 3086: Duplicate entry '56.450000000--3.366670000-121' for key 'lat_lon_height'
其中AFAICT正是它应该做的。然而,目前,我只想让脚本继续前进,不要插入重复条目,但会打印一条关于它们的警告。我试着安装在多种方式的脚本的开始继续处理以下the MySQL docs和some other online resources,但他们都只是建立一个语法错误:
DECLARE CONTINUE HANDLER FOR 1062
SELECT 'Duplicate key in unique index';
或
DECLARE CONTINUE HANDLER FOR SQLSTATE '23000'
SELECT 'Duplicate key in unique index';
或
DECLARE CONTINUE HANDLER FOR SQLSTATE '23000'
BEGIN
SELECT 'Duplicate key in unique index';
END;
我在做什么错了?
确实有效,谢谢你的提示! :-) 花了我一点时间来找到一些实际上在存储过程中做的事情,并不只是想把所有的78000插入语句放在那里......关于语法错误,我只能冒险猜测我在分隔符上弄错了一些东西,第一次我做了这些东西。 – ssc 2010-09-28 11:09:50