sql >> Database teknologi >  >> RDS >> Mysql

forhindre duplikerede indgange til databasen

Jeg er ked af at sige, at dette er den forkerte tilgang.

Databaser har et indbygget system for at forhindre, at data duplikeres. Det er gennem primære nøgler eller unikke nøglebegrænsninger. I dit tilfælde har du allerede oprettet en primær nøgle. Så det er absolut ikke nødvendigt for dig at gøre det SELECT COUNT(*) forespørgsel.

I stedet skal du bare indsætte direkte i tabellen og fange integritetsfejlen, når p-koden allerede eksisterer.

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 også MySQL-manualsiden PRIMÆR NØGLE og UNIKKE indeksbegrænsninger



  1. Hvordan erstatter man et regulært udtryk i MySQL?

  2. Endnu en 12c Optimizer-hvidbog

  3. Tjek, om et Postgres JSON-array indeholder en streng

  4. Python Pandas to_sql, hvordan opretter man en tabel med en primær nøgle?