临时表开始抱怨ID不能为空

时间:2019-02-25 19:41:42

标签: mysql primary-key

自两年以来,我一直在运行以下代码,它基本上重复了一个空缺。因此,它将其行从数据库复制到临时表,在该表中,我将一些计数器放回0并将ID设置为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;

这段代码已经运行了两年多了。突然,它开始引发以下错误:

  

'vacancy_id'列不能为空

     

更新tmptable SET vacancy_id = NULL

我也很久没有接触过职位空缺表,尤其是vacancy_id(PK)自动递增。

我该如何调试此问题,为什么突然发生?我对下一步的工作有些困惑

编辑:设法通过在插入之前修改临时表来解决该问题,如本帖子MySQL: How to copy rows, but change a few fields?中所建议。还是想知道为什么突然出现此错误?

0 个答案:

没有答案