По второму согласен. Главное чтобы его в транзакции не унесло.
А вот выдавать ошибку всем остальным скриптам, которые пытаются создавать новую запись - это не ответ, даже на то что автор спросил.
Да при чем здесь база то?
Уложи у себя в голове сначала, чем база отличается от таблицы, а таблица - от строки.
Ничего создавать не нужно. Убери уникальный индекс и пиши в ту таблицу, которая есть. Инсертами.
Потом селектом выберешь сумму по всем записям за нужную дату
Во и формируй из исходных данных.
У тебя должны быть не апдейты, а инсерты. И и дата не уникальная.
потом по всем вставленным строкам делаешь свой отчет.
вот всегда придет такой дурачок и все испортит
и, главное, ведь сам не понимает, что пишет.
но лезет отвечать. как же - надо поделиться тайными познаниями