Не создается строка в таблице, если нет никаких в ней данных
INSERT INTO businesses_stats (Biz_id, Biz_Date) \
SELECT '1', CURDATE() FROM businesses_stats WHERE \
NOT EXISTS (SELECT * FROM businesses_stats WHERE Biz_Date = CURDATE() AND) LIMIT 1;
Вот такой запрос. Необходимо, чтобы если не существовало подобной строки - создавало новую. Все работает при условии, если хотя бы одна строка есть в таблице. Как переделать запрос?
Ответы (1 шт):
Автор решения: Максим Белый
→ Ссылка
Mike был прав, именно Dual необходимо было использовать. Что касается уникального индекса, про который сказал Akina, тут не все так просто. Дата может повторяться. необходимо сделать не только один уникальный столбец, но и второй. Uniq Biz ID + Uniq Biz Date Только такая строка может создаться. Так что, с Dual все работает идеально. Спасибо за ответы. Вот такой запрос получился
INSERT INTO `businesses_stats` (`Biz_id`, `Biz_Date`)
SELECT '1', CURDATE() FROM DUAL
WHERE NOT EXISTS (SELECT * FROM `businesses_stats`
WHERE `Biz_id`='1' AND `Biz_Date`= CURDATE() LIMIT 1)