当前位置: 首页 > 知识库问答 >
问题:

Java备份mysql表仅部分?

陆雅志
2023-03-14

我喜欢在Java创建一个备份脚本,它将备份一个表,但只备份一些选定的行。请参阅此示例表:

table names:
    id, group, name
    1, 1, "John"
    2, 1, "Frank"
    3, 1, "Smith"
    4, 2, "Anny"
    5, 2, "Gustav"

table ages:
id, group, age
1, 1, 54
2, 1, 30
3, 1, 55
4, 2, 20
5, 2, 45

我喜欢备份表“names”和“ages”,但只备份GROUP=1的行。是否有任何mysqldump脚本,我可以在那里定义要备份的表和一个必须适合的where子句?

谢谢

谢谢你,我只是试了一下,但结果并不完全是我所需要的:

DROP TABLE IF EXISTS `names`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `names` (
...
) ENGINE=MyISAM AUTO_INCREMENT=619 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

mysql转储创建一个drop表和一个create表。它无法删除该表,因为其中有更多的数据。它必须基于where子句创建delete语句,如:

Delete from names where group = 1

如果没有这一点,我无法在一天后插入备份,以恢复和删除一些错误数据。如果有人插入它而不注意,他删除孔表。

共有1个答案

苏凯
2023-03-14

Mysqldump有一个--where选项,但条件必须与所有表相关。

在您的例子中,这似乎是可能的,因为您对两个表都有相同的列名和相同的值。

但由于使用group作为列名,这就使得这变得稍微复杂一些,而这是MySQL中的一个保留关键字。

我通过在test模式中创建与表名匹配的表,并运行以下命令来测试:

mysqldump test --tables names ages --where '`group` = 1'

注意引号的使用。后面的刻度对于分隔保留的关键字是必要的,这样它就可以在SQL中用作列标识符。单引号是限定where条件所必需的,以防止shell将反勾解释为命令替换。双引号允许字符串中的命令替换,因此必须使用单引号。

 类似资料:
  • 假设现在有表books: 1.复制表结构 1.1 含有主键等信息的完整表结构 CREATE table 新表名 LIKE book; 1.2 只有表结构,没有主键等信息 create table 新表名 select * from books; 或 create table 新表名 as (select * from book); 或 create table 新表名 s

  • 备份是以防万一的一种必要手段,在出现硬件损坏或非人为的因素而导致数据丢失时,可以使用备份恢复数据,以将损失降低到最小程度,因此备份是必须的。备份可以分为以下几个类型。 根据备份的方法(是否需要数据库离线)可以将备份分为: 热备(Hot Backup) 冷备(Cold Backup) 温备(Warm Backup) 热备份可以在数据库运行中直接备份,对正在运行的数据库操作没有任何的影响,数据库的读写

  • 我需要避免错误,并使用mysqldump将数据库备份存储在单独的文件路径中

  • 问题内容: 我试图运行以下代码来创建 数据库 的 备份, 但是它显示了一些运行时错误。 但是,我尝试 在mysql shell中 运行 System.out.println()输出 部分(在给定的代码中已对此进行了注释) ,并且它可以正常工作 。 它显示io文件问题。请有人帮助我。 问题答案: 请检查您的Global PATH环境变量是否在其中包含 \ bin(执行 并查看)。有效地,您应该能够在

  • 问题内容: 我尝试运行以下代码来创建 数据库备份, 但它显示了一些运行时错误。 但是,我尝试 在mysql shell中 运行 System.out.println()输出 部分(在给定的代码中已对此进行了注释) ,并且它可以正常工作 。 它显示io文件问题。请有人帮助我。 问题答案: 请检查您的Global PATH环境变量是否在其中包含 \ bin(执行 并查看)。有效地,您应该能够在Plai

  • 主要内容:备份一个数据库,备份多个数据库,备份所有数据库数据库的主要作用就是对数据进行保存和维护,所以备份数据是数据库管理中最常用的操作。为了防止数据库意外崩溃或硬件损伤而导致的数据丢失,数据库系统提供了备份和恢复策略。 保证数据安全的最重要的一个措施就是定期的对数据库进行备份。这样即使发生了意外,也会把损失降到最低。 数据库备份是指通过导出数据或者复制表文件的方式来制作数据库的副本。当数据库出现故障或遭到破坏时,将备份的数据库加载到系统,从而使数据库