0

几个月前,我迁移到另一个 mysql 服务器,并通过 phpMyAdmin Web 界面进行了导出和导入。我刚刚意识到我只是丢失了多个表的所有“创建日期”,因为它们都被我认为是导入操作的日期所覆盖。

现在没什么大不了的,因为它仍然是开发测试数据,但这在生产过程中将是一个巨大的损失(如果我需要再次迁移)。

关于为什么会发生这种情况或如何防止它再次发生的任何想法?正如我在标题中提到的,列的“类型”都设置为日期时间,“默认”设置为 CURRENT_TIMESTAMP,我刚刚注意到“额外”设置为 DEFAULT_GENERATED(这可能表明存在问题,因为我'以前从未见过这个)。

注意:当前版本是 8.0.20,我相信旧服务器是 5.6。另外,我很确定我没有处理所有的导出/导入设置。我记得导入引发了投诉,但我相信它与默认的 sql 表有关。

编辑

所以,我只是查看了由导出生成的 .sql 文件,我可以看到INSERT INTO (..) VALUES (...)不包含该creation_date列或其任何数据。所以出口一定有问题。任何想法在我的下一次出口中寻找什么?

4

1 回答 1

1

感谢大家的评论。这是文件顶部的信息.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 上得到修复。

于 2021-06-21T17:04:00.373 回答