Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

evitar entradas duplicadas no banco de dados


Lamento dizer que esta é a abordagem errada.

Os bancos de dados têm um sistema integrado para evitar que os dados sejam duplicados. Isso é por meio de chaves primárias ou restrições de chave exclusivas. No seu caso, você já criou uma chave primária. Portanto, não há absolutamente nenhuma necessidade de você fazer isso SELECT COUNT(*) inquerir.

Em vez disso, basta inserir diretamente na tabela e capturar o erro de integridade quando o pcode já existir.
Try
    cmd = New MySqlCommand("Insert into personnel values('" & pcode.Text & "','" & lname.Text & "','" & fname.Text & "','" & office.Text & "','" & designation.Text & "')")

    i = cmd.ExecuteNonQuery


    If pcode.Text <> "" Then
    ElseIf i > 0 Then
        MsgBox("Save Successfully!", MessageBoxIcon.Information, "Success")
        mrClean()
        ListView1.Tag = ""
        Call objLocker(False)
        Call LVWloader()
        Call calldaw()
    Else
        MsgBox("Save Failed!", MessageBoxIcon.Error, "Error!")
    End If
Catch ex As MySqlException
    MsgBox("Personnel ID Already Exist!", MessageBoxIcon.Error, "Error!")
End Try

Consulte também a página do manual do MySQL PRIMARY KEY e Restrições de índice ÚNICO