我在一个数据库表中有记录,我想将所有记录转移到另一个数据库中的表中。
我当前的代码只能在同一数据库中的表之间传输。
Statement st = conn.createStatement();
int rows = st.executeUpdate("Insert into script(ID,Name) Select ID,Name from table1");
if(rows==0){
JOptionPane.showMessageDialog(null,"Nothing to transfer.");
}else{
JOptionPane.showMessageDialog(null,rows+" transfered successfully into script");
}
}catch(SQLException | HeadlessException e){
JOptionPane.showMessageDialog(null,e);
}finally{
try{
rs.close();
pst.close();
}
catch(Exception e){
}
}
//and below are my database connections.
public into_databses(){
conn = connector.db1();
conn1 = connector.db2();
}
//and I am currently using only conn=connector.db1```
I want to modify it so that I can transfer records between tables in the different databases. thank you
答案 0 :(得分:0)
如果您使用的是Sqlite3,则需要ATTACH DATABASE。
通过目标数据库连接,运行以下语句:
ATTACH DATABASE 'other.db' AS source;
INSERT INTO main.script(ID, Name) SELECT ID, Name FROM source.table1;
DETACH source; -- optional
其中other.db
是要从中复制数据库的文件名。
应对诸如重复的主键之类的约束违规行为留给读者练习-INSERT
有多种方法来处理可能对您不起作用的事情,具体取决于您的需求。>