Campo ID duplicidade ao inserir o segundo item

3 respostas
java
Ricardopspy

A primeira inserção o ID é inserido inicialmente 0 o erro retornado é o seguinte:
com.microsoft.sqlserver.jdbc.SQLServerException:
Violation of PRIMARY KEY constraint ‘PK__Aluno__06370DAD2022C2A6’.
Cannot insert duplicate key in object ‘dbo.Aluno’. The duplicate key value is (0).

Ja li muita coisa sobre o assunto, porém a questão seria como tratar esse erro ates
da persistencia.
Grato pela ajuda.

Tabela do Banco de Dados

CREATE TABLE Aluno
(
Codigo INT PRIMARY KEY IDENTITY (1,1)NOT NULL,
Nome VARCHAR(50) null,
Sobrenome VARCHAR(50) null,
CodCidade INT null,
)

Classe de persistencia

private Connection btSalvarActionPerformed(java.awt.event.ActionEvent evt) {

String codigo = tfCod.getText();
    String nome = tfNome.getText();
    String sobrenome = tfSobrenome.getText();
    String codcidade = tfCodCidade.getText();

    try {
        //Concatenando as STRINGS pelo NOME
        //atualiza codigo
        
        stmt.executeUpdate("SET IDENTITY_INSERT Aluno ON INSERT INTO Aluno (codigo,nome,sobrenome,codcidade)VALUES ('" + codigo + "','" + nome + "','" + sobrenome + "','" + codcidade + "')");

         try {
        } catch (Exception e) {
            JOptionPane.showMessageDialog(this, "Salvo com Sucesso!!!" + e.getMessage());
        }
    } catch (SQLException e) {
        JOptionPane.showMessageDialog(this, "Erro ao tentar salvar" + e.getMessage());

    }

    return con;

}

3 Respostas

lucciano01

`vc pode alterar a sequencia do banco de dados
ALTER SEQUENCE id RESTART WITH 105 (104 deve ser o último id gerado no seu banco de dados)

a partir daí a persitência será normalizada
`

igomes

Qual é o seu banco ?

Ricardopspy

SQL Server 2008 R2

Criado 28 de fevereiro de 2016
Ultima resposta 29 de fev. de 2016
Respostas 3
Participantes 3