gpt4 book ai didi

mysql导出单独创建表并更改

转载 作者:行者123 更新时间:2023-11-29 15:12:06 25 4
gpt4 key购买 nike

我目前正在尝试找到一种方法来分离 mysql 导出功能(使用 phpmyadmin 和/或 shell)

以下情况:我有两个数据库,它们在某些状态下是相同的,但随着时间的推移,只有一个得到更新。例如: -database1 有表“users”,其中包含“UID”和“用户名”列 -database2 有表“users”,其中包含“UID”、“用户名”和“状态”列

现在我想导出数据库2并将其导入到数据库1。 database2 包含我不再需要的数据。但database1包含重要数据。因此,我需要一些东西,让我能够以某种方式“合并”这些数据库,而不会丢失数据库 1 上的数据,也不会合并数据库 2 中的数据。

  • 合并应该检查表是否存在,如果不存在 -> 创建它
  • 合并应该查看表中是否存在列,如果不存在 -> 创建它

到目前为止我已经尝试过:我首先尝试使用内置的 PHPmyadmin 导出功能(高级选项)。这会给我以下结果:

    CREATE TABLE IF NOT EXISTS `users` (
`UID` int(11) NOT NULL,
`username` varchar(25) NOT NULL,
`status` int(2) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

当然,当我导入它时,不会发生任何特殊情况,因为表已经存在,因此不会创建“状态”列。在我的研究中,我发现可以使用 shell 使用以下命令导出与表创建分离的数据库(涂黑数据库名称和用户/密码):

mysqldump -t --insert-ignore --skip-opt -u USER -p PASSWORD -h 127.0.0.1 database > database.sql

但这给了我一个带有数据的插入选项(我不需要)

INSERT  IGNORE INTO `users` VALUES (1,"bla",1);

还有什么不同的可能性吗?当然,我知道我可以手动编写它来更改表中的列,但它肯定必须是自动的,因为它不仅仅是我在示例中命名的表。

为了100%清楚我想要实现的目标,伪手写sql脚本:

CREATE TABLE IF NOT EXISTS 'users';
For every column -> IF NOT EXISTS column in 'users' -> ALTER TABLE 'users' ADD column def;

最佳答案

您也可以使用 MySQLWorkBench。看video instruction

关于mysql导出单独创建表并更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59986225/

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