首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >MySQL导出查询作为insert语句

MySQL导出查询作为insert语句
EN

Stack Overflow用户
提问于 2010-09-24 20:00:27
回答 5查看 60.2K关注 0票数 30

我有两个mysql表,它们都有一个共同的typeID。我想从这两个表中选择具有相同typeID的所有内容,查询如下:

SELECT ta.requiredTypeID, ta.typeID, ta.quantity 
  FROM `invtypes` as t, `typeactivitymaterials` as ta 
  WHERE volume > 0 AND t.typeID = ta.typeID;

这给出了正确的结果,但我尝试将此查询导出为insert语句。我尝试在OUTFILE中添加"/path/“,但这只将数据导出为制表符/逗号分隔的数据,是否可以将此数据导出为insert语句?

干杯

Eef

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-09-24 20:18:03

您可以将INSERT与SELECT结合使用,以直接从select语句的结果插入记录。

你这样做是这样的:

INSERT INTO newtable (requiredTypeID, typeID, quantity)
     SELECT ta.requiredTypeID, ta.typeID, ta.quantity 
         FROM `invtypes` as t, `typeactivitymaterials` as ta 
         WHERE volume > 0 AND t.typeID = ta.typeID;

这里有一个相关MySQL manual page的链接。

请注意,这实际上会立即执行插入操作;它不会完成您要求的操作(即生成insert语句以供稍后使用)。

票数 16
EN

Stack Overflow用户

发布于 2010-09-24 20:10:18

您也许可以改用mysqldump。查看参数--tables--where=

http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html

票数 50
EN

Stack Overflow用户

发布于 2013-04-23 21:01:28

如果您有MySQL工作台,它可以为您生成insert语句。

在SQL编辑器中运行查询,然后从结果集中单击导出按钮。然后在"Save as Type“中选择as "SQL INSERT statements (*.sql)”。单击“保存”,确认要导出的表,然后单击“确定”。

如果打开该文件,您应该会看到结果集是带有列名的insert语句。

我只在一个简单的select * from表上进行了测试。我没有用多个表测试过这一点。我希望这能帮到你。

编辑:工作台似乎可用于Windows、OSX和Linux (感谢vcardillo)

票数 35
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3786820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档