Erro de dados duplicados

Estou tentando fazer esse update só que está dando erro… e é para fazer o update, então não poderia dar erro de duplicado

UPDATE SIMCardDispositivo SET Dispositivo_Numero = 'A12345678', SIMCard_Numero = 89550504130008532222 FROM Dispositivo WHERE SIMCardDispositivo.Dispositivo_Numero = Dispositivo.Numero AND SIMCardDispositivo.Dispositivo_Numero = 'A12345678'

Erro

[code]ERRO: duplicar valor da chave viola a restrição de unicidade "simcarddispositivo_pkey"
DETAIL: Chave (simcard_numero)=(89550504130008532222) já existe.

********** Error **********

ERRO: duplicar valor da chave viola a restrição de unicidade "simcarddispositivo_pkey"
SQL state: 23505
Detail: Chave (simcard_numero)=(89550504130008532222) já existe.[/code]

posta seu codigo de update, pq se vc fizer um update desse direto no banco, com certeza nao vai dar violacao de chave, é algo no seu codigo java

Eses são os Updates que utilizo… onde ta dando o erro é no A

[code] // UPDATE A (SIMCARDDISP_DISPOSITIVO)
private static final String SQL_SIMCARD_UPDATE_SIMCARDDISP_A = “UPDATE SIMCardDispositivo SET Dispositivo_Numero = (?::varchar), SIMCard_Numero = (?::varchar)::numeric FROM Dispositivo WHERE SIMCardDispositivo.Dispositivo_Numero = Dispositivo.Numero AND SIMCardDispositivo.Dispositivo_Numero = (?::varchar)”;
private static final String SQL_SIMCARD_UPDATE_DISP_A = “UPDATE Dispositivo SET Numero = (?::varchar), CodigoTecnologia = (?::integer), CodigoAPNConfigurada = (?::integer), ip = (?::varchar), porta = (?::integer), CodigoFonteDados = (?::integer), imei = (?::varchar)::numeric FROM SIMCardDispositivo WHERE SIMCardDispositivo.Dispositivo_Numero = Dispositivo.Numero AND Dispositivo.Numero = (?::varchar)”;

// UPDATE B (SIMCARDDISP_SIMCARD)
private static final String SQL_SIMCARD_UPDATE_SIMCARDDISP_B = "UPDATE SIMCardDispositivo SET Dispositivo_Numero = (?::varchar), SIMCard_Numero = (?::varchar)::numeric FROM Dispositivo WHERE SIMCardDispositivo.Dispositivo_Numero = Dispositivo.Numero AND SIMCardDispositivo.SIMCard_Numero = (?::varchar)::numeric";
private static final String SQL_SIMCARD_UPDATE_DISP_B = "UPDATE Dispositivo SET Numero = (?::varchar), CodigoTecnologia = (?::integer), CodigoAPNConfigurada = (?::integer), ip = (?::varchar), porta = (?::integer), CodigoFonteDados = (?::integer), imei = (?::varchar)::numeric FROM SIMCardDispositivo	WHERE SIMCardDispositivo.Dispositivo_Numero = Dispositivo.Numero AND SIMCardDispositivo.SIMCard_Numero = (?::varchar)::numeric";

// UPDATE C (SIMCARDDISP_SIMCARD E DISPOSITIVO)
private static final String SQL_SIMCARD_UPDATE_SIMCARDDISP_C = "UPDATE SIMCardDispositivo SET Dispositivo_Numero = (?::varchar), SIMCard_Numero = (?::varchar)::numeric FROM Dispositivo WHERE SIMCardDispositivo.Dispositivo_Numero = Dispositivo.Numero AND SIMCardDispositivo.Dispositivo_Numero = (?::varchar) AND SIMCardDispositivo.SIMCard_Numero = (?::varchar)::numeric";
private static final String SQL_SIMCARD_UPDATE_DISP_C = "UPDATE Dispositivo SET Numero = (?::varchar), CodigoTecnologia = (?::integer), CodigoAPNConfigurada = (?::integer), ip = (?::varchar), porta = (?::integer), CodigoFonteDados = (?::integer), imei = (?::varchar)::numeric FROM SIMCardDispositivo	WHERE SIMCardDispositivo.Dispositivo_Numero = Dispositivo.Numero AND SIMCardDispositivo.Dispositivo_Numero = (?::varchar) AND SIMCardDispositivo.SIMCard_Numero = (?::varchar)::numeric";[/code]