ALTER TABLE ИНОСТРАННЫЙ КЛЮЧ от java до mysql - PullRequest
3 голосов
/ 02 декабря 2011

Что ж, я хочу внести изменения в свою базу данных, поэтому мне нужно использовать alter table, но у java, похоже, есть проблемы с этим.

Это предложение

ALTER TABLE loans ADD FOREIGN KEY (id_reader) REFERENCES readers (id);

как вы выполняете это?

Я делал это:

rawStatement="ALTER TABLE loans ADD FOREIGN KEY (id_reader) REFERENCES readers (id);";
currentStatement = conn.createStatement();
currentStatement.execute(rawStatement); 

последняя строка верна?

Насколько я знаю, execute должен запустить все.

Ответы [ 2 ]

4 голосов
/ 02 декабря 2011

Использование это :

executeUpdate() 

вместо

execute()

Также, если ограничение уже присутствует, оно выдаст исключение

Другие вещи, на которые стоит обратить внимание:

  • Имеет ли пользователь права изменять таблицу?
2 голосов
/ 02 декабря 2011

Попробуйте с кодом ниже:

rawStatement="ALTER TABLE loans ADD FOREIGN KEY (id_reader) REFERENCES readers (id)"; 
PreparedStatement ps = conn.prepareStatement(rawStatement);
ps.executeUpdate();
...