2011-12-02 112 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();