如何在java中为具有复合键的表编写deletesql语句?

mutmk8jj  于 2021-06-15  发布在  Mysql
关注(0)|答案(4)|浏览(248)

我确信这个问题有99%的答案,但我似乎找不到我要找的东西。到目前为止,我一直在编写sql语句来从java中的一个表中删除一行,就像这样(对于一个名为crime的表,主键是crimeid)。crimeid来自ui)

private DatabaseAPI db;
PreparedStatement st=db.connection.prepareStatement("DELETE FROM crime WHERE CrimeId = '"+Integer.parseInt(txtCrimeId.getText())+"';");

如何为复合键编写where语句?比如,对于一个名为charges的表,其中的键是crimeid和criminal?

fcg9iug3

fcg9iug31#

我相信下一个代码应该适合你

PreparedStatement st=db.connection.prepareStatement("DELETE FROM crime WHERE CrimeId = ? and CriminalID = ?");
st.setInt(1, Integer.parseInt(txtCrimeId.getText()));
st.setInt(2, Integer.parseInt(txtCriminalID.getText()));
st.executeUpdate();
vuktfyat

vuktfyat2#

DELETE FROM charges WHERE CrimeId = '____' AND CriminalID = '____' ;

这就是你要找的吗?

dzhpxtsq

dzhpxtsq3#

你需要使用 AND . 与 AND 你要结合条件。
请阅读此内容以了解更多信息
所以你的代码看起来像

DELETE FROM charges WHERE CrimeId = 'YourCrimeID' AND CriminalID = 'YourCriminalID' ;

只要替换一下 YourCriminalID 以及 YourCrimeID .

vpfxa7rd

vpfxa7rd4#

如下所示:

PreparedStatement st=db.connection.prepareStatement(
  "DELETE FROM crime WHERE CrimeId = ? AND CriminalID = ?" );
st.setInt(1, Integer.parseInt(txtCrimeId.getText() );
st.setInt( 2, Integer.parseInt(txtCriminaId.getText());

相关问题