mysql从一个表导入另一个表_sql-如何将表值从一个数据库插入到另一个数据库?...

sql-如何将表值从一个数据库插入到另一个数据库?

如果目标表已经存在,我希望查询将记录从一个表插入到另一个数据库的另一个表中,它应该将记录追加到表的末尾。

7个解决方案

116 votes

这个怎么样:

USE TargetDatabase

GO

INSERT INTO dbo.TargetTable(field1, field2, field3)

SELECT field1, field2, field3

FROM SourceDatabase.dbo.SourceTable

WHERE (some condition)

marc_s answered 2019-10-01T22:05:22Z

26 votes

如何将表值从一个服务器/数据库插入到另一个数据库?

1创建链接服务器{如果需要}(SQL Server 2008 R2-2012)[http://technet.microsoft.com/en-us/library/ff772782.aspx#SSMSProcedure]

2配置链接服务器以使用凭据a)[http://technet.microsoft.com/es-es/library/ms189811(v=sql.105).aspx]

EXEC sp_addlinkedsrvlogin 'NAMEOFLINKEDSERVER', 'false', null, 'REMOTEUSERNAME', 'REMOTEUSERPASSWORD'

-检查服务器

SELECT * FROM sys.servers

-测试链接服务器

EXEC sp_testlinkedserver N'NAMEOFLINKEDSERVER'

插入新的本地表

SELECT * INTO NEWTABLE

FROM [LINKEDSERVER\INSTANCE].remoteDATABASE.remoteSCHEMA.remoteTABLE

要么

作为新值插入到远程表中

INSERT

INTO [LINKEDSERVER\INSTANCE].remoteDATABASE.remoteSCHEMA.remoteTABLE

SELECT *

FROM localTABLE

作为新的本地表值插入

INSERT

INTO localTABLE

SELECT *

FROM [LINKEDSERVER\INSTANCE].remoteDATABASE.remoteSCHEMA.remoteTABLE

OzzKr answered 2019-10-01T22:06:31Z

9 votes

这是一种快速简便的方法:

CREATE TABLE database1.employees

AS

SELECT * FROM database2.employees;

Cillín answered 2019-10-01T22:06:54Z

6 votes

--Code for same server

USE [mydb1]

GO

INSERT INTO dbo.mytable1 (

column1

,column2

,column3

,column4

)

SELECT column1

,column2

,column3

,column4

FROM [mydb2].dbo.mytable2 --WHERE any condition

/*

steps-

1- [mydb1] means our opend connection database

2- mytable1 the table in mydb1 database where we want insert record

3- mydb2 another database.

4- mytable2 is database table where u fetch record from it.

*/

--Code for different server

USE [mydb1]

SELECT *

INTO mytable1

FROM OPENDATASOURCE (

'SQLNCLI'

,'Data Source=XXX.XX.XX.XXX;Initial Catalog=mydb2;User ID=XXX;Password=XXXX'

).[mydb2].dbo.mytable2

/* steps -

1- [mydb1] means our opend connection database

2- mytable1 means create copy table in mydb1 database where we want

insert record

3- XXX.XX.XX.XXX - another server name.

4- mydb2 another server database.

5- write User id and Password of another server credential

6- mytable2 is another server table where u fetch record from it. */

Sagar Mahajan answered 2019-10-01T22:07:11Z

5 votes

你可以试试

Insert into your_table_in_db1 select * from your_table_in_db2@db2SID

db2SID是其他数据库的sid。 它将出现在tnsnames.ora文件中

sandywho answered 2019-10-01T22:07:36Z

1 votes

INSERT

INTO remotedblink.remotedatabase.remoteschema.remotetable

SELECT *

FROM mytable

关系数据库中没有“表的末端”之类的东西。

Quassnoi answered 2019-10-01T22:08:00Z

0 votes

如果两个表具有相同的架构,则使用此查询:插入到database_name.table_name中,从new_database_name.new_table_name选择*,其中='condition'

将database_name替换为您的第一个数据库的名称,并将table_name替换为您要从中复制的表的名称还将new_database_name替换为您要复制的其他数据库的名称,而new_table_name是表的名称。

Ghazali Shacklebolt answered 2019-10-01T22:08:30Z

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中将数据库按某条件查到的数据导入到另一个可以通过以下步骤实现: 1. 连接数据库:使用JDBC连接数据库,获取Connection对象。 2. 创建目标:使用CREATE TABLE语句,创建目标。 3. 查询数据:使用SELECT语句,按照某个条件查询源中的数据。 4. 插入数据:使用INSERT INTO语句,将查询到的数据插入到目标中。 下面是一个示例代码: ```java import java.sql.*; public class ImportTableData { public static void main(String[] args) { Connection conn = null; Statement stmt = null; ResultSet rs = null; try { // 连接数据库 Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password"); // 创建目标 stmt = conn.createStatement(); stmt.executeUpdate("CREATE TABLE target_table (id INT, name VARCHAR(20))"); // 查询数据 String sql = "SELECT id, name FROM source_table WHERE age > 30"; rs = stmt.executeQuery(sql); // 插入数据 while (rs.next()) { int id = rs.getInt("id"); String name = rs.getString("name"); stmt.executeUpdate("INSERT INTO target_table VALUES (" + id + ", '" + name + "')"); } System.out.println("Table data imported successfully."); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { // 关闭连接、语句对象和结果集对象 try { if (rs != null) { rs.close(); } if (stmt != null) { stmt.close(); } if (conn != null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } } } } ``` 该示例代码使用JDBC连接MySQL数据库,创建了一个名为target_table的目标,使用SELECT语句查询源中age大于30的数据,并使用INSERT INTO语句将查询到的数据插入到目标中。注意,这里使用的是Statement对象执行SQL语句,因此要注意SQL注入的问题。在实际开发中,应该使用PreparedStatement对象执行SQL语句,以避免SQL注入的风险。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值