Mysql
 sql >> база данни >  >> RDS >> Mysql

предотвратяване на дублиращи се записи в базата данни

Съжалявам, че казвам, че това е грешен подход.

Базите данни имат вградена система за предотвратяване на дублирането на данни. Това е чрез първични ключове или уникални ключови ограничения. Във вашия случай вече сте създали първичен ключ. Така че няма абсолютно никаква нужда да правите това SELECT COUNT(*) заявка.

Вместо това просто вмъкнете директно в таблицата и хванете грешката в целостта, когато pcode вече съществува.

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

Моля, направете справка и със страницата наръчник на MySQL PRIMARY KEY и УНИКАЛНИ Индексни ограничения



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Docker-compose :mysqld:Не мога да създавам/записвам във файл '/var/lib/mysql/is_writable' (Errcode:13 - Отказано разрешение)

  2. MySQL DISTINCT на GROUP_CONCAT()

  3. Задействайте преди изтриване на MySql

  4. SQL разделяне на стойности на няколко реда

  5. Опитвам се да направя LOAD DATA INFILE с REPLACE и AUTO_INCREMENT