Условные операторы в SQL

#sql

Вопрос:

Можно ли вставлять повторяющиеся значения в строку базы данных только в том случае, если другой столбец в той же таблице уникален? Спасибо за вашу помощь.

настройка таблицы базы данных:

 login_time int(15) [unique key] | user_id int(15) | time_worked varchar(64)
 

Это мое заявление о вставке.
Что мне нужно, так это вставить, только если идентификатор пользователя или время входа уникальны.
И не вставлять, если и идентификатор пользователя, и время входа в систему совпадают с другой строкой в базе данных.

     INSERT INTO `ucm_user_timelog` VALUES (' . intval($user_id) .
        ', ' . $timeWorked . ', ' . $logInTime . ')
 

Комментарии:

1. Я надеюсь, что переменные PHP не слишком вас смущают. оператор insert вызывается из переменной PHP.

2. Сначала вы должны выполнить SELECT запрос в таблице ucm_user_timelog и использовать PHP (предполагая, что это сценарий на стороне сервера), чтобы определить, соответствует или нет $user_id или $logInTime .

3. Да, я так и думал. я просто надеялся, что смогу сделать это с конца базы данных.

4. когда вы делаете свое время входа уникальным, у вас никогда не может быть двух строк с одинаковым временем входа.

5. Какую базу данных вы используете? Я в основном использую Oracle, и там я бы сделал это (я удалил кавычки для ясности): ВСТАВЬТЕ В ucm_user_timelog ВЫБЕРИТЕ $user_id, $timeWorked, $logInTime ИЗ DUAL, ГДЕ ЕГО НЕТ (ВЫБЕРИТЕ 1 ИЗ ucm_user_timelog, ГДЕ user_id = $user_id и login_time = $logInTime)