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

Възникна грешка в базата данни. Номер на грешка:1062

Вашата UPDATE клауза задава id_publisher колона на NULL и въз основа на името на колоната и грешката, която получавате, това колоната е PRIMARY KEY на таблицата с настройка на unsigned NOT NULL .

Поради това, когато направите id_publisher = NULL , MySQL го преобразува в id_publisher = 0 поради unsigned част. Това ще се изпълни добре първия път, но когато го стартирате на втори ред, сега ще се опитвате да вмъкнете втори стойност на първичен ключ 0 , което не е позволено.

Въз основа на местоположението на die() във вашия примерен код, предполагам, че следният блок е виновникът:

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

Ето вашия $id_publis променливата е празна или нула.

Предлагам или да премахнете id_publisher = NULL част от UPDATE клауза, която е толкова проста, колкото премахването на 'id_publisher' => $id_publis, от $data1 масив или преосмислете причината, поради която всъщност трябва да го зададете на null като начало (в този случай изтриването на реда ще бъде ли по-полезно?)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да зададете условие И за ВСИЧКИ колони - php

  2. MySQL:Възможно ли е да се присъединят резултатите от GROUP-BY към два SELECT?

  3. Използваният тип таблица не поддържа индекси FULLTEXT

  4. Мащабиране на временните записи в базата данни, за да се преброят общите суми, за да се спре прекомерният абонамент

  5. MySQL кръгла дата до началото на седмицата и месеца