Это может быть простая проблема с jar. Возможно, вы используете старый mysql-connector-java-XXX-bin.jar
, который не поддерживается вашей текущей версией mysql. Я использовал mysql-connector-java-5.1.18-bin.jar
, поскольку использую mysql 5.5
, и эта проблема решена для меня.
Поскольку с именами не связан идентификатор, я бы просто использовал ROW_NUMBER и присоединился к ROW_NUMBER = unique_reviser_code. Единственная проблема состоит в том, чтобы знать, какие строки являются нулевыми Из того, что я вижу, все они кажутся нулевыми. По вашим данным, так ли это, или в таблице периодически встречаются имена, например, 5, 17, 29 ... и т. Д.? Если name_expedient_reviser пуст в dbo_expedient_reviser, вы также можете усечь таблицу и напрямую вставить значения. Надеюсь, этот уникальный_ревизер-код уже не связан с другими вещами.
WITH CTE (name_expedient_reviser, unique_reviser_code)
AS
(
SELECT name_expedient_reviser
,ROW_NUMBER() OVER (ORDER BY name_expedient_reviser)
FROM source_table
)
UPDATE er
SET er.name_expedient_reviser = cte.name_expedient_reviser
FROM dbo_expedient_reviser er
JOIN CTE on cte.unique_reviser_code = er.unique_reviser_code
Или усечь:
Truncate Table dbo_expedient_reviser
INSERT INTO dbo_expedient_reviser (name_expedient_reviser, unique_reviser_code)
SELECT DISTINCT
unique_reviser_code = ROW_NUMBER() OVER (ORDER BY name_expedient_reviser)
,name_expedient_reviser
FROM source_table