gpt4 book ai didi

mysql - 在不影响MySQL中的外键的情况下用另一张表替换一个空表

转载 作者:行者123 更新时间:2023-11-29 07:25:34 24 4
gpt4 key购买 nike

  • 我已仅使用结构迁移数据库
  • 在这个数据库中,我有一个名为 hash 的表,当然它是空的。
  • 该表正被大量其他表通过外键使用。
  • 我有另一个名为 hash_copy 的表,它刚刚从另一个数据库复制,并且充满了记录(500'000 条记录)。

我尝试使用以下 SQL 语句将一个表替换为另一个表

SET FOREIGN_KEY_CHECKS=0;
RENAME TABLE hash to hash_empty, hash_copy to hash;
SET FOREIGN_KEY_CHECKS=1;

问题是现在我所有的外键都指向 hash_empty 这正是我试图避免的。

总结

我想关闭外键,只是为了将一个表交换为另一个表(扔掉空表并插入完整的记录),而不必遍历所有引用它的表。

这可能吗?

提前致谢。

最佳答案

根据评论,可以将一个表复制到另一个表,例如:

INSERT INTO hash SELECT * from hash_copy

更一般地说,插入选择语法的工作方式与您所期望的一样;您可以指定列名称(INSERT INTO hash(col1, col2, col3))并包含您通常使用的任何 SELECT 语法(函数、联接、where 子句等)。

关于mysql - 在不影响MySQL中的外键的情况下用另一张表替换一个空表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34686189/

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