sql >> Database >  >> RDS >> Mysql

Databasefout opgetreden Foutnummer:1062

Uw UPDATE clausule is het instellen van de id_publisher kolom naar NULL , en, op basis van de naam van de kolom en de fout die u ontvangt, dat kolom is de PRIMARY KEY . van de tabel met een instelling van unsigned NOT NULL .

Daarom, wanneer u id_publisher = NULL . doet , MySQL converteert het naar id_publisher = 0 vanwege de unsigned een deel. Dit zal de eerste keer prima worden uitgevoerd, maar wanneer u het op een tweede rij uitvoert, probeert u nu een tweede in te voegen waarde primaire sleutel van 0 , wat niet is toegestaan.

Gebaseerd op de locatie van de die() statement in uw voorbeeldcode, neem ik aan dat het volgende blok de boosdoener is:

   $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, je $id_publis variabele is leeg of null.

Ik zou willen voorstellen om ofwel de id_publisher = NULL . te verwijderen gedeelte van de UPDATE clausule die zo simpel is als het verwijderen van 'id_publisher' => $id_publis, van de $data1 array, of heroverweeg de reden waarom je het eigenlijk op null moet zetten om te beginnen (zou het in dit geval voordeliger zijn om de rij te verwijderen?)




  1. Python MySQL-connector retourneert bytearray in plaats van normale tekenreekswaarde

  2. Kan PostgreSQL's 11 Stored Procedure niet aanroepen met Hibernate

  3. c# datetime gebruiken in mysql-updatequery

  4. Pdf gemaakt met Html2pdf ik weet niet hoe ik pdf moet opslaan en ophalen