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变量已经有我不知道的那些值如何检查数据库中是否有这些对;如果我不那么继续插入,否则停止插入。
为数据库添加一个唯一密钥 - 它应该是RMDBS的工作,以确保数据的完整性。 –
CREATE UNIQUE INDEX my_index_name ON声望(stream_id,my_id) –
噢好吧我正在使用mysql我知道有唯一的密钥,但这是2对,应该是一个唯一的密钥。我会进一步研究它。 – user1949387