Чтобы гарантировать уникальность (employee_code, date)
кортежей, вы можете просто сделать эти столбцы первичным ключом таблицы (или установить для него уникальное ограничение):
CREATE TABLE attendance (
employee_code INT,
status INT,
in_time TIME,
out_time TIME,
total_time INT,
`date` DATE,
PRIMARY KEY(employee_code, `date`)
);
Примечание: date
isне очень хороший выбор для имени столбца, так как он конфликтует с омонимом типа данных MySQL.Я бы предложил выбрать другое имя.
Демонстрация на DB Fiddle :
Сначала создайте таблицу, затем вставьте один раз:
INSERT INTO attendance(employee_code, `date`) values (1, NOW());
При попытке снова вставить тот же кортеж, вы получите сообщение об ошибке:
Ошибка: ER_DUP_ENTRY: повторяющаяся запись '1-2019-09-28' для ключа 'PRIMARY'