首页 > 解决方案 > 如何使用一个数据库中的值将它们插入另一个数据库的表中?

问题描述

我想将一个数据库中的多个值插入到另一个数据库中。

INSERT IGNORE INTO organization (`id`, `company_id`, `code`, `name`, `path`) 
(SELECT 100 + id_status FROM database2.employeestatus), '1',
(SELECT 100 + id_status FROM database2.employeestatus),
(SELECT tagline FROM database2.employeestatus),
(SELECT 100 + id_status FROM database2.employeestatus);

问题是,当我尝试以这种方式运行它时,它会中断,ofc。但是当我一一执行时,例如:

SELECT 100 + id_status FROM database2.employeestatus

然后它返回我需要的所有行。大约有 40 行,我不想手动输入它们。

有人可以帮我吗?

标签: mysqlsql

解决方案


尝试使用INSERT INTO ... SELECT

INSERT IGNORE INTO organization (id, company_id, code, name, path)
SELECT 100 + id_status, '1', 100 + id_status, tagline,
       100 + id_status
FROM database2.employeestatus;

您当前方法的问题是您在 select 子句中拥有的每个子查询本身都返回多个记录/值。这没有意义,因为选择列表只能包含单个标量值。


推荐阅读