2011-12-02 82 views
3

那么,我想在我的数据库中进行修改,所以我需要使用alter table,但java似乎有问题做出这一点。从java到mysql的ALTER TABLE FOREIGN KEY

这是一句

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必须运行一切。

+0

我对我的失误真的很抱歉。 我正在用扫描仪读取一个文件中的数据,我从来没有意识到扫描仪没有加载整个文件,它停在ALTER TABLE行,导致错误,现在即时阅读整个文件和ALTER工作完美.. 我一直在使用execute,它工作正常。 再次,对不起。 – Lostuser23

回答

4

使用this

executeUpdate() 

,而不是

execute() 

另外,如果约束已经存在,它会抛出一个异常

其他的事情你应该注意的事项:

  • 用户是否有权修改表格?
2

尝试用下面的代码:

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