sql >> Databasteknik >  >> RDS >> Mysql

förhindra dubbla poster i databasen

Ledsen att säga att detta är fel tillvägagångssätt.

Databaser har ett inbyggt system för att förhindra att data dupliceras. Det är genom primärnycklar eller unika nyckelbegränsningar. I ditt fall har du redan skapat en primärnyckel. Så du behöver absolut inte göra det SELECT COUNT(*) fråga.

Istället sätter du bara in direkt i tabellen och fångar integritetsfelet när p-koden redan finns.

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

Se även MySQL-manualsidan PRIMÄRNYCKEL och UNIKA indexbegränsningar



  1. Hantera databasintegritet

  2. Hur man konfigurerar PostgreSQL Sharding med ClusterControl

  3. Hantera replikeringsproblem från icke-GTID till GTID MariaDB-databaskluster

  4. Reguljära uttryck hitta och ersätt i Postgres