mysql - 如何使用一个数据库中的值将它们插入另一个数据库的表中?
问题描述
我想将一个数据库中的多个值插入到另一个数据库中。
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 行,我不想手动输入它们。
有人可以帮我吗?
解决方案
尝试使用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 子句中拥有的每个子查询本身都返回多个记录/值。这没有意义,因为选择列表只能包含单个标量值。
推荐阅读
- c# - 如何对从用户收到的某些消息执行函数(可能包含 SQL 查询或编程逻辑)
- python-3.x - 使用 zappa 的 AWS Lambda 部署问题
- f# - F# Parse 命令行参数,预期在此点或之前不完整的结构化构造;或者 ;;
- c# - C#如何在上下文子菜单上动态添加点击事件
- javascript - 如果选中复选框“A”和“C”,则选中复选框“B”
- mongodb - 无法连接在ec2上运行的mongodb
- python - Flask 应用程序没有更新前端模板
- angular - 使用角度在模板上显示数据
- c# - 如何修复我的计时器,使其以秒为单位计数?
- swift - 高度约束,lessThanOrEqualToConstant,但如果可能会尝试实现常量