Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wystąpił błąd bazy danych Numer błędu:1062

Twoja UPDATE klauzula ustawia id_publisher kolumna na NULL , a na podstawie nazwy kolumny i wyświetlanego błędu że kolumna to PRIMARY KEY tabeli z ustawieniem unsigned NOT NULL .

Z tego powodu, gdy robisz id_publisher = NULL , MySQL konwertuje go na id_publisher = 0 ze względu na unsigned część. Za pierwszym razem zadziała to dobrze, jednak po uruchomieniu w drugim wierszu będziesz teraz próbował wstawić sekundę wartość klucza podstawowego 0 , co jest niedozwolone.

Na podstawie lokalizacji die() w przykładowym kodzie, zakładam, że winowajcą jest następujący 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);

Tutaj Twój $id_publis zmienna jest pusta lub null.

Proponuję albo usunąć id_publisher = NULL fragment z UPDATE klauzula, która jest tak prosta jak usunięcie 'id_publisher' => $id_publis, z $data1 tablicę lub przemyśl powód, dla którego faktycznie musisz ustawić ją na null na początek (czy w takim przypadku usunięcie wiersza byłoby korzystniejsze?)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak przyciąć pierwsze trzy znaki na podstawie pierwszej litery (wyrażenia) przed wstawieniem do bazy danych

  2. Jak skonfigurować MySQL pod Zend Framework?

  3. wartość strefy czasowej serwera „CDT” jest nierozpoznana lub reprezentuje więcej niż jedną strefę czasową

  4. Funkcja tygodnia miesiąca w mysql

  5. Jak sprawdzić, czy w innej tabeli nie ma danych podczas łączenia mysql?