【问题标题】:mysql import sql file without overwrite but update curent value + backup valuemysql导入sql文件而不覆盖但更新当前值+备份值
【发布时间】:2016-03-30 11:44:03
【问题描述】:

我有 2 个数据库

1.db_temporary

2.db_primary

在 db_temporary 中我有一个表,其中包含我想要保留而不覆盖它但从导入的 MYSQL 文件更新它的一堆数据

我使用此命令转储 db_primary 并将备份导入到 db_temporary

D:\mysql4.0.27\bin\mysqldump.exe --add-drop-table db_primary tb_wantomodify > "backupfile.sql"
D:\mysql4.0.27\bin\mysql.exe db_temporary < "backupfile.sql"

我试过This Solution 是的,它没有被覆盖,但我想要的是用新的备份值更新(添加)db_temporary 的最近字段。

技术上类似于更新集curvalue=curvalue+ 'newvaluefrombackup' like

可以这样做吗?

谢谢

【问题讨论】:

    标签: mysql command-line batch-processing command-prompt mysqldump


    【解决方案1】:

    首先,您可以将这两个表放在同一个数据库中。没有理由创建两个单独的文件。其次,您在这里想要的是 SQL UPDATE 命令。首先创建一个数据库对象并将其设置为您的数据库。

    SQLiteDatabase dataBase = SQLiteDatabase.openDatabase(myPath,
                null, SQLiteDatabase.OPEN_READWRITE);
    database.execSQL("UPDATE " +yourTableNameHere+ " SET " +theColumnYouWantToUpdate+ "='" +theNewValue+ "' WHERE " +theColumnNametoUpdate+ "='" +theNewValue+ "'");
    

    起初这可能看起来令人困惑,但您需要了解的是 SQL 命令读取为字符串。此示例假定您使用字符串常量作为表数据,这是您应该做的。前后的 + 号是连接命令。确保添加空格。并且不要忘记要检查的值之后的逗号。这里有一个很好的 SQL 命令教程:[http://www.1keydata.com/sql/sqlselect.html]

    【讨论】:

    • 谢谢Brandon先生首先它是“设计”的,我了解规范化术语,由于公司术语,我工作了2个数据库,为了安全而不修改主数据库,其次我明白了什么你的意思是,但我想在这个基于 mysql 的命令行上做这个,我可以用 php 或其他语言的解决方法来解决这个问题,但我想知道是否可以从备份文件进行更新,如果可以的话我需要一个线索谢谢你回答:)
    • 很抱歉,您是否尝试使用 android sql 助手类?
    • 不,先生我尝试使用mysql控制台,但现在我找到了解决方案,它是基于你的想法,我不知道mysql可以导出>到sql文件,我认为只有mysqldump可以完成这项工作,最终代码: D:\mysql4.0.27\bin\mysql.exe -e "SELECT CONCAT('UPDATE tb_name SET field1=field1+''',field1,'''; ') AS '' FROM tb_name;" db_primary > "backupfile.sql" 通过错过通信,但您的回答给了我一个想法:D 再次感谢
    • 很高兴它有帮助,我也学到了一些东西,因为我不知道 MySQL 是什么。在阅读了您的第一条评论后,我去查找了它。不知道为什么我的想法只是把它读成 SQL。祝您假期愉快。
    猜你喜欢
    • 2021-10-27
    • 1970-01-01
    • 2021-12-03
    • 2018-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多