2015-09-24 91 views
0

我有一個插入子句和2列名爲my_id和stream_id,我希望它使每對(my_id,stream_id)是唯一的。例如,my_id是用戶個人唯一的ID,它總是相同的,stream_id對應於不同的帖子。例如,如果添加my_id是4和的stream_id是8,那麼你可以插入但因爲現在是你不能做的8.這同樣的stream_id另一插入數據庫是我的JDBC代碼jdbc我怎樣才能確保2行是唯一的一起

int stream_id= Integer.parseInt(requestData.get("stream_id")); 
int my_id= Integer.parseInt(requestData.get("my_id")); 
     String insertTableSQL = "INSERT INTO reputation" 
     + "(stream_id,my_id) VALUES" 
     + "(?,?)"; 

    dbConnection = DB.getConnection(); 
    preparedStatement = dbConnection.prepareStatement(insertTableSQL, Statement.RETURN_GENERATED_KEYS); 

    preparedStatement.setInt(1, stream_id); 
    preparedStatement.setInt(2, my_id); 
    preparedStatement.executeUpdate(); 

只是爲了澄清我只是想確保我有唯一的數據庫對,如果我有一個5的my_id和9的stream_id,那麼我應該拒絕另一對5和9. int變量已經有我不知道的那些值如何檢查數據庫中是否有這些對;如果我不那麼繼續插入,否則停止插入。

+3

爲數據庫添加一個唯一密鑰 - 它應該是RMDBS的工作,以確保數據的完整性。 –

+1

CREATE UNIQUE INDEX my_index_name ON聲望(stream_id,my_id) –

+0

噢好吧我正在使用mysql我知道有唯一的密鑰,但這是2對,應該是一個唯一的密鑰。我會進一步研究它。 – user1949387

回答

1

您應該在數據庫中添加一個唯一的密鑰。如果你想在應用程序站點處理,也許你可以使用Hibernate或JPA或JDO。

相關問題