【问题标题】:Table Insertion - Multiple MySQL Databases表插入 - 多个 MySQL 数据库
【发布时间】:2018-09-27 19:37:31
【问题描述】:

我正在使用以下查询尝试将 Database2 中的 table2 中的几行插入 Database1 中的 table1 中。这两个表都有不同的架构。

两个表的结构相同。我确实用类似的查询检查了其他帖子,但无济于事。使用以下基本方法:

 INSERT INTO    remoteDATABASE.remoteSCHEMA.remoteTABLE
  SELECT  * FROM    localTABLE

INSERT INTO 'eno*****.com'.asdf_stage.temp 
SELECT i.artf_id as  id,
    title as description,
    (case 
        when i.assigned_group = 'asdfk' then 'dfg'
        when i.assigned_group = 'dfgdg' then 'dgdk'
        when i.assigned_group = 'dfghdgf' then 'igo'
        when i.assigned_group = 'dfgh' then 'eMgem'
        when i.assigned_group = 'Edsfg' then 'esgd'
        end ) as area,
    "N/A" as disposition,
   "********" as flavor,
   "ipf" as link,
   "*************" as vendor,
    DATE(date_created) date,
  DATE(close_date) as completed
  FROM ******com.lkjhg_stage.issues  i
    where date(date_created) >'2018-04-01' AND status!='Rejected'

我遇到语法错误,需要知道在这两个地方提及数据库名称、架构名称和表名称的正确语法是什么。 另外,表格大约有 10-15 列,我需要指定所有列吗?

【问题讨论】:

  • 我确实检查了那个查询,它确实提到了如何指定架构,我也想知道我们是否需要在第一行按名称指定每一列..
  • 我不确定我以前是否见过两点表标识符限定(在 MySQL 中);如果您尝试插入...从一个 服务器 选择到另一个,我不确定这是可能的。
  • 我不确定这是否是正确的语法,因此问题...需要知道如何在上述查询中指定数据库名称、模式名称和表名称。
  • Databaseschema 在 MySQL 中的含义相同。 see here 另外,“数据库”!=“服务器”

标签: mysql insert multiple-databases


【解决方案1】:

用单引号代替双引号。 DATE 不是函数,保留字 date 不是一个好的列名。

将您的表引用为 SERVER.DATABASE.OWNER.OBJECT

INSERT INTO SERVER1.DATABASE1.OWNER1.OBJECT1
SELECT * FROM localTABLE

INSERT INTO SERVER1.DATABASE1.OWNER1.OBJECT1
SELECT i.artf_id as id,
    title as description,
    (case 
        when i.assigned_group = 'asdfk' then 'dfg'
        when i.assigned_group = 'dfgdg' then 'dgdk'
        when i.assigned_group = 'dfghdgf' then 'igo'
        when i.assigned_group = 'dfgh' then 'eMgem'
        when i.assigned_group = 'Edsfg' then 'esgd'
        end ) as area,
    'N/A' as disposition,
   '********' as flavor,
   'ipf' as link,
   '*************' as vendor,
    date_created,
    close_date as completed
FROM SERVER2.DATABASE2.OWNER2.OBJECT2  i
WHERE date_created > '2018-04-01' AND status != Rejected'

【讨论】:

  • MySQL 不支持SERVER.DATABASE.OWNER.OBJECT 作为参考,只支持DATABASE.TABLE 作为参考
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-04
  • 1970-01-01
  • 2011-09-20
  • 2011-07-07
  • 2018-05-23
  • 1970-01-01
相关资源
最近更新 更多