使用MySQL CLI将值从一个数据库复制到另一个数据库

使用MySQL CLI将值从一个数据库复制到另一个数据库,mysql,Mysql,我有两个数据库fooDB和barDB,它们都有一个结构相同的表,名为options。我想将fooDB.options中一个单元格的值复制到barDB.options。我不能使用(非本地)outfiles,我有两个用户,都只能访问两个数据库中的一个。使用鼠标复制和粘贴不起作用,因为值太复杂 有什么想法吗?如何使用MySQL命令行客户端复制值?我考虑过使用变量,但您不能在同一CLI会话中更改用户。有什么想法吗?它应该是一个简单而快速的解决方案:当然我可以做一个mysqldump或者其他任何事情,但是

我有两个数据库
fooDB
barDB
,它们都有一个结构相同的表,名为
options
。我想将
fooDB.options
中一个单元格的值复制到
barDB.options
。我不能使用(非本地)outfiles,我有两个用户,都只能访问两个数据库中的一个。使用鼠标复制和粘贴不起作用,因为值太复杂


有什么想法吗?如何使用MySQL命令行客户端复制值?我考虑过使用变量,但您不能在同一CLI会话中更改用户。有什么想法吗?它应该是一个简单而快速的解决方案:当然我可以做一个mysqldump或者其他任何事情,但是这对于一个值来说太过复杂了(而且需要太多时间)。

这个想法是生成SQL脚本,更新(或插入)所需的值。要生成SQL,请使用以下命令(username1-fooDB数据库的用户名):

然后,您将获得文件_name.sql,其中包含以下内容:

UPDATE barDB.options SET value = 'Your value here' WHERE id = 1;
然后只需运行以下脚本(username2-barDB数据库的用户名):

mysql-u username2-p

有些人使用:

  • -N
    -不要在结果中写入列名
  • -s
    -使用非tabular输出格式
  • -r
    -禁用字符转义
我在命令行选项中禁用字符转义,因为特殊字符已在SELECT查询中转义

UPDATE barDB.options SET value = 'Your value here' WHERE id = 1;
mysql -u username2 -p < file_name.sql