Как написать оператор удаления SQL в Java для таблиц с составным ключом? - PullRequest
0 голосов
/ 17 декабря 2018

Я на 99% отвечаю на этот вопрос где-то, но не могу найти то, что ищу.До сих пор я писал свой оператор sql для удаления строки из таблицы в java следующим образом (это для таблицы с именем crime, где первичный ключ называется CrimeId. CrimeId взят из пользовательского интерфейса)

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

Как бы я написал оператор where для составного ключа?Например, для таблицы под названием «обвинения», ключом которой являются CrimeID и CriminalID?

Ответы [ 4 ]

0 голосов
/ 17 декабря 2018

Я считаю, что следующий код должен работать для вас

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();
0 голосов
/ 17 декабря 2018

Вам нужно использовать ANDAND вы комбинируете с условиями.

Читайте это для получения дополнительной информации

Итак, ваш код выглядит как

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

Просто замените YourCriminalID и YourCrimeID.

0 голосов
/ 17 декабря 2018

Примерно так:

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());
0 голосов
/ 17 декабря 2018
DELETE FROM charges WHERE CrimeId = '____' AND CriminalID = '____' ;

Это то, что вы искали?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...