当前位置: 首页 > 面试题库 >

MySQL从CSV数据文件批量插入

呼延高超
2023-03-14
问题内容

我有一些要导入mySQL的CSV数据文件。我想在shell脚本中进行插入,以便可以将其自动化。但是,我对在脚本中使用明文形式输入用户名和密码感到有些厌倦

我有以下问题:

  1. 我对脚本中明文中的uname / pwd的想法感到不满意(反正还是这样,还是我太偏执)?也许我可以为插入表设置仅具有INSERT特权的用户?

  2. 数据库表(导入原始数据的数据库表)具有基于表列的唯一键。我尝试导入的数据中也可能有重复项。我希望能够将mySQL告诉 EITHER* ,而不是mySQL讨价还价(即整个插入失败) *

(a)使用新数据更新行, (b)忽略重复的行。

我选择的任何设置都将用于整个导入,而不是逐行进行。是否有任何标志等可以传递给mysql以使其表现为类似于(a)或(b)的行为

  1. 谁能建议一个关于编写这样的(bourne)shell脚本的起点?

问题答案:

您应该阅读有关mysqlimport的信息,这是MySQL随附的命令行工具。该工具是批量加载CSV数据的最快方法。

该工具有两个选项,--replace--ignore处理重复键冲突。

关于安全性和避免在脚本中以纯文本形式输入密码,您还可以使用MYSQL_PWD环境变量.my.cnf文件(确保文件的模式为400或600)。请参阅《最终用户密码安全准则》。



 类似资料:
  • 本文向大家介绍MySQL批量插入数据脚本,包括了MySQL批量插入数据脚本的使用技巧和注意事项,需要的朋友参考一下 MySQL批量插入数据脚本 新建表格就可以了 插入十万的数据为./jiaoben.sh 100000

  • 问题内容: 下面是csv的示例行 您可以将 KRISHNA KUMAR ASHOKU,AR 视为单个字段,但是由于逗号,它会将KRISHNA KUMAR ASHOKU和AR视为两个不同的字段,尽管它们用“”括起来,但还是没有运气 我试过了 有什么解决方案吗? 问题答案: 答案是:您不能那样做。请参阅http://technet.microsoft.com/zh- cn/library/ms1883

  • 想要知道更多东西吗?当你需要从表中查找某些值时,可以使用冗长的 case 语句或 selectors 实现,但更整洁的方式是使用 extlookup 函数实现。 在 puppetmaster 上可以使用 extlookup 函数查询外部的 CSV 文件,并返回匹配的数据片段。 将所有数据组织到一个单一的文件并将它从 Puppet 配置清单中分离出来, 可以使维护工作变得更简单,也便于与其他人分享:

  • 问题内容: 我正在使用Python中的MySQLdb模块与数据库进行交互。我遇到的情况是有一个非常大的列表(成千上万个元素),需要将它们作为行插入表中。 我现在的解决方案是生成一个大的语句作为字符串并执行它。 有没有更聪明的方法? 问题答案: 有一种更聪明的方法。 批量插入的问题在于,默认情况下启用了自动提交功能,从而导致每个语句在下一次插入可以启动之前被保存到稳定存储中。 如手册页所述: 默认情

  • Msg 7330,级别16,状态2,第1行 无法从链接服务器“(null)”的OLE DB访问接口“BULK”中获取行。 有什么想法吗?谢谢你。

  • 我创建了一个向MySql数据库插入数百万个值的程序。我读到过有关批插入的文章,它将优化我的程序并使其更快,但当我尝试这样做时,它以同样的方式工作。我没有将每个值插入数据库,而是每次将500个值保存在一个列表中,然后将它们插入一个大循环中,如下所示: 然后我删除列表中的所有值,并再次开始收集500个值。它不应该工作得更好吗? 我的插入代码是: 我有一些问题: 1。为什么当我批量插入时它不能更快地工作