Я пытаюсь создать веб-приложение для управления кампаниями телемаркетинга. Пользователь приложения может загружать листы Excel, включая номер телефона + поля состояния, в приложение и обновлять «статус», когда он звонит клиентам. Когда лист Excel загружен, все данные отправляются в таблицу с именем "tp_numb". Затем я создал «MySQL insert ignore», чтобы скопировать данные из «tp_numb» в таблицу с именем «ok_list». Мне нужно обновить поле «status» в таблице «ok_list», когда найдены дубликаты. Если дубликаты не найдены, данные должны быть вставлены в таблицу «ok_list».
CREATE TABLE `tp_numb` (
`id` int(11) NOT NULL,
`number` varchar(10) NOT NULL,
`ref_id` int(10) NOT NULL,
`status` int(1) NOT NULL DEFAULT '0',
`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE `ok_list` (
`id` int(11) NOT NULL,
`tp_numb_id` int(10) NOT NULL,
`number` varchar(10) NOT NULL,
`status` int(2) NOT NULL,
`notes` text,
`status_updated_on` datetime DEFAULT NULL,
`ref_id` int(10) NOT NULL,
`date` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`assign` int(10) NOT NULL DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT IGNORE INTO ok_list (tp_numb_id, number, status, ref_id)
SELECT t.id, t.number, t.status, r.ref_id
FROM tp_numb t, reference r
WHERE t.ref_id = r.ref_id;
Над кодом указан код, который я пытался улучшить с помощью функции обновления поля «status» втаблица "ok_list". Потому что статус телефонных номеров должен быть статусом в соответствии с последним загруженным файлом Excel. Как я могу обновить статус при обнаружении дубликата? Как вставить запись, если дубликаты не найдены?