将所有记录从一个数据库表转移到另一数据库表

时间:2019-05-25 16:03:33

标签: java sql sqlite

我在一个数据库表中有记录,我想将所有记录转移到另一个数据库中的表中。

我当前的代码只能在同一数据库中的表之间传输。

 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

1 个答案:

答案 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有多种方法来处理可能对您不起作用的事情,具体取决于您的需求。