问题描述
几个月前,我迁移到另一个 MysqL 服务器,并通过 PHPMyAdmin Web 界面进行了导出和导入。我才意识到,我只是失去了所有的“创建日期”为多个表,因为他们都与我所相信的是导入操作的日期得到覆盖。
现在没什么大不了的,因为它仍然是开发测试数据,但这将是生产过程中的巨大损失(如果我需要再次迁移)。
关于为什么会发生这种情况或如何防止它再次发生的任何想法?正如我在标题中提到的,列的“类型”都设置为日期时间,“默认”设置为 CURRENT_TIMESTAMP,我只是注意到“额外”设置为 DEFAULT_GENERATED(这可能是问题的指示,因为我以前从未见过这个)。
注意:当前版本是 8.0.20,我相信旧服务器是 5.6。另外,我很确定我没有考虑所有导出/导入设置。我记得导入引发了投诉,但我相信它与默认的 sql 表有关。
编辑
所以,我刚刚查看了导出生成的 .sql 文件,我可以看到 INSERT INTO (..) VALUES (...)
不包含 creation_date
列或其任何数据。所以出口一定有问题。有什么想法可以在我下一次导出时寻找什么吗?
解决方法
感谢大家的评论。这是 .sql
文件顶部的信息:
-- phpMyAdmin SQL Dump
-- version 4.8.5
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1:3306
-- Generation Time: Mar 24,2021 at 07:42 PM
-- Server version: 8.0.20
-- PHP Version: 7.3.11
所以看来我是从 8.0.20 导出的...很奇怪,我确定它是 5.6。无论如何,问题似乎正是@Solarflare 提到的,并且似乎在新版本的 phpMyAdmin 上得到了解决。