2015-01-15 87 views
1

如何處理非關鍵屬性上的unique_constraint?我正在使用Oracle數據庫。
我對用戶名字段有一組唯一的限制。 (emp_id是主鍵,但我必須檢查emp_username)。當我故意插入重複的用戶名時,我的程序被卡住了,而不是在調試時在控制檯中顯示任何錯誤。
非關鍵字段上的Oracle唯一約束沒有錯誤?

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

我不太清楚我是否完全理解你所要求的。插入重複記錄時沒有得到例外的問題是否存在?請發佈程序的完整代碼片段。 – gvenzl

+1

如果你的程序掛起,它很可能正在等待一個鎖定的行...你是否第一次試圖插入命令行,然後運行你的程序,沒有提交/回滾在其他會話? – Falco

回答

0

似乎這裏的問題是不是在你的代碼(你的代碼是罰款),它在數據你正試圖插入,用戶名列是唯一的,所以您不能在該列中多次插入值。