У меня следующий код работает уже 2 года, он в основном дублирует вакансию.Таким образом, он копирует свою строку из базы данных во временную таблицу, где я помещаю некоторые счетчики обратно в 0 и помещаю идентификатор в NULL (потому что это автоинкремент).
Это код:
$this->db->query('CREATE TEMPORARY TABLE tmptable SELECT * FROM vacancies WHERE vacancy_id = ' . $vacid);
$this->db->query('UPDATE tmptable SET vacancy_id = NULL');
if (!empty($banner)) {
$this->db->query('UPDATE tmptable SET banner = "' . $banner . '"');
}
$this->db->query('UPDATE tmptable SET create_time = now()');
$this->db->query('UPDATE tmptable SET watch_counter = 0');
$this->db->query('UPDATE tmptable SET contact_info_counter = 0');
$this->db->query('UPDATE tmptable SET status = 0');
$this->db->query('UPDATE tmptable SET reminder_mail_sent = 0');
$this->db->query('UPDATE tmptable SET extend_code = NULL');
$this->db->query('INSERT INTO vacancies SELECT * FROM tmptable');
$newvacancyid = $this->db->insert_id();
$this->db->query('DROP TEMPORARY TABLE IF EXISTS tmptable');
return $newvacancyid;
Этот код работает уже более 2 лет.И вдруг он начинает выдавать следующую ошибку:
Столбец 'vacancy_id' не может быть пустым
ОБНОВЛЕНИЕ tmptable SET vacancy_id = NULL
Iтакже давно не касались таблицы вакансий, и особенно это касается автоинкремента vacancy_id (PK).
Как мне отладить эту проблему, почему это происходит внезапно?Я немного застрял здесь, что делать дальше
РЕДАКТИРОВАТЬ: удалось решить эту проблему, изменив временную таблицу перед вставкой, как предлагается в этом посте MySQL: как копировать строки, но изменитьнесколько полей? .Хотелось бы еще узнать, почему вдруг появилась эта ошибка?