Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Datenbankfehler aufgetreten Fehlernummer:1062

Ihr UPDATE -Klausel setzt den id_publisher Spalte auf NULL , und basierend auf dem Namen der Spalte und dem Fehler, den Sie erhalten, das Spalte ist der PRIMARY KEY der Tabelle mit einer Einstellung von unsigned NOT NULL .

Aus diesem Grund, wenn Sie id_publisher = NULL ausführen , MySQL konvertiert es in id_publisher = 0 aufgrund des unsigned Teil. Dies wird beim ersten Mal problemlos ausgeführt, wenn Sie es jedoch in einer zweiten Zeile ausführen, werden Sie jetzt versuchen, eine zweite einzufügen Primärschlüsselwert von 0 , was nicht erlaubt ist.

Basierend auf der Position des die() -Anweisung in Ihrem Beispielcode, gehe ich davon aus, dass der folgende Block der Übeltäter ist:

   $data1 = array(
    'id_publisher' => $id_publis,
    'publisher' => $publis,
    'artis' => $ar,
    'id_label' => $id_lab);

    $this->db->where('id_publisher', $this->input->post('id'), $data);
    $this->db->update("t_publisher",$data1);

Hier, Ihre $id_publis Variable ist entweder leer oder null.

Ich würde vorschlagen, entweder id_publisher = NULL zu entfernen Teil aus dem UPDATE -Klausel, die so einfach ist wie das Entfernen von 'id_publisher' => $id_publis, aus $data1 Array, oder überdenken Sie den Grund, warum Sie es tatsächlich auf null setzen müssen zu beginnen (wäre es in diesem Fall vorteilhafter, die Zeile zu löschen?)