sql >> Databáze >  >> RDS >> Mysql

Vyskytla se chyba databáze Číslo chyby:1062

Vaše UPDATE klauzule nastavuje id_publisher sloupec na NULL a na základě názvu sloupce a chyby, která se vám zobrazuje, to sloupec je PRIMARY KEY tabulky s nastavením unsigned NOT NULL .

Z tohoto důvodu, když uděláte id_publisher = NULL , MySQL jej převede na id_publisher = 0 kvůli unsigned část. Toto se provede v pořádku poprvé, ale když jej spustíte na druhém řádku, budete se nyní pokoušet vložit druhý hodnota primárního klíče 0 , což není povoleno.

Na základě umístění die() ve vašem ukázkovém kódu, předpokládám, že viníkem je následující blok:

   $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);

Zde je vaše $id_publis proměnná je buď prázdná, nebo null.

Navrhoval bych buď odstranit id_publisher = NULL část z UPDATE klauzule, která je stejně jednoduchá jako odstranění 'id_publisher' => $id_publis, z $data1 pole nebo přehodnoťte důvod, proč jej vlastně potřebujete nastavit na null pro začátek (bylo by v tomto případě smazání řádku výhodnější?)




  1. PSQLException:tato sada výsledků je uzavřena

  2. Řídicí struktury PL/pgSQL pro seznamy / pole

  3. Získávání dat pomocí znakové sady UTF-8 ze serveru MSSQL pomocí rozšíření PHP FreeTDS

  4. Mysql:Mazání všech řádků starších než 5 let každých 10 sekund