gpt4 book ai didi

带有 where 子句的 mysqldump 使用参照完整性

转载 作者:行者123 更新时间:2023-11-30 23:39:30 28 4
gpt4 key购买 nike

我知道我可以使用“where 子句”转储单个表,但我想知道是否可以转储一个表并将所有链接记录一起转储(如果它们属于某个帐户 ID)?

我所有的表都是 innodb 并且是使用外键约束和级联删除设置的。如果我删除 account_id = 1 的主表“account”,那么所有链接到“1”的 account_id 的记录也将被删除。

所以我想要的是概念上类似的东西。我想在一个命令中转储链接到“account”表的所有表中“Account_id=1”的所有数据。如果我执行以下命令,我相信它只会转储一个表:

mysqldump -t -u [用户名] -p 测试账户 --where="account_id = 1"

是否有另一种方法可以使用 where 子句转储表并自动转储 liking 表中的数据,而无需为每个表编写单独的转储命令?最终我想为每个帐户创建一个 .sql 文件,例如“account_1.sql”、account_2.sql 等。

最佳答案

我曾将这个问题放在我最喜欢的列表中,看看是否有人提出了想法,但正如我所料,没有人提出。

一种相当有趣的方法是克隆数据库,删除所有不需要的帐户 ID(删除将级联到所有表),然后转储剩余的(这将是您需要的所有帐户 ID)。

我遇到了与 MySQL 和 DBIx::Class(Perl 中的 ORM)相同的问题。我想做的是克隆一千个帐户(使用混淆的名称和电子邮件)。我最终编写了一个脚本,通过给定用户 ID 的外键遍历整个数据库,并以正确的顺序生成所有必需的插入语句。

关于带有 where 子句的 mysqldump 使用参照完整性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4675334/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com