#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)