从Java更改MySQL的ALTER TABLE外键

3

嗯,我想要在我的数据库中进行修改,所以我需要使用 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必须运行全部内容。


非常抱歉我的错误。 我使用Scanner从文件中读取SQL,但我没有意识到Scanner没有加载整个文件,它停在ALTER TABLE行处,导致了错误。现在我正在读取整个文件,ALTER已经完美地工作了... 我继续使用execute,一切都很好。 再次道歉。 - Lostuser23
2个回答

4

使用这个

executeUpdate() 

替代而非
execute()

如果约束已经存在,则会抛出异常。

其他需要注意的事项:

  • 用户是否具有更改表的权限?

2
请尝试以下代码:
rawStatement="ALTER TABLE loans ADD FOREIGN KEY (id_reader) REFERENCES readers (id)"; 
PreparedStatement ps = conn.prepareStatement(rawStatement);
ps.executeUpdate();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接