Объединение в подзапросе NOT EXISTS
не требуется, если вам нужно только проверить наличие столбца столбца created_at
:
INSERT INTO date_dim (id, created_at, week_day, month_day, month_num, `year`)
SELECT DISTINCT ddt.*
FROM date_dim_temp ddt
WHERE NOT EXISTS (SELECT * FROM date_dim dd WHERE dd.created_at = ddt.created_at);
Также, если есть UNIQUE
ограничение для created_at
в date_dim
, тогда вам не нужно NOT EXISTS
. Используйте INSERT IGNORE
:
INSERT IGNORE INTO date_dim (id, created_at, week_day, month_day, month_num, `year`)
SELECT DISTINCT ddt.*
FROM date_dim_temp ddt
Это также приведет к отклонению любых других строк, которые нарушают любое существующее ограничение.