Нет ошибки в Oracle Unique Constraint для неключевого поля?

1

Как мне нужно обрабатывать уникальный_контурный атрибут без ключа? Я использую базу данных Oracle.
У меня есть установленное уникальное ограничение на поле имени пользователя. (emp_id - это первичный ключ, но я должен проверить emp_username). Когда я намеренно вставляю повторяющееся имя пользователя, моя программа застревает, вместо того, чтобы отображать любую ошибку в консоли при отладке.

   String sql = "insert into employee(emp_username, emp_password) values (\'"+username+"\', \'"+password+"\')";
   statement.executeUpdate(sql);

Но при дублировании в командной строке появляется ошибка:

ERROR at line 1:
ORA-00001: unique constraint (USMAN.UNIQUE_USERNAME) violated
  • 1
    Я не совсем уверен, полностью ли я понимаю, о чем вы просите. Проблема в том, что вы не получаете исключение обратно при вставке дубликата записи? Пожалуйста, опубликуйте полный код вашей программы.
  • 1
    Если ваша программа зависает, скорее всего, она ожидает заблокированной строки ... Вы сначала пытались вставить в командную строку, а затем запустили свою программу без коммита / отката в другом сеансе?
Теги:
class
debugging
java-ee

1 ответ

0

кажется, что проблема не в вашем коде (ваш код в порядке), он в данных, которые вы пытаетесь вставить, столбец имени пользователя уникален, поэтому вы не можете вставлять значение несколько раз в этот столбец.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню