2015-09-24 73 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。

相关问题