Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql导出单独的createtable和alter_Mysql_Database_Import_Export - Fatal编程技术网

mysql导出单独的createtable和alter

mysql导出单独的createtable和alter,mysql,database,import,export,Mysql,Database,Import,Export,我目前正试图找到一种分离mysql导出函数的方法(使用phpmyadmin和/或shell) 以下情况: 我有两个数据库,在某些州是相同的,但随着时间的推移,只有一个得到了更新。例如: -database1的表“users”中有“UID”和“username”列 -database2的表“users”具有“UID”、“username”和“status”列 现在我想导出database2并将其导入database1。database2包含我不再需要的数据。但是数据库1包含重要的数据。因此,我需要

我目前正试图找到一种分离mysql导出函数的方法(使用phpmyadmin和/或shell)

以下情况: 我有两个数据库,在某些州是相同的,但随着时间的推移,只有一个得到了更新。例如: -database1的表“users”中有“UID”和“username”列 -database2的表“users”具有“UID”、“username”和“status”列

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

  • 合并应该查看表是否存在,如果不存在->创建它
  • 合并应该查看表中是否存在列,如果不存在,则->创建它
到目前为止,我所尝试的: 我首先尝试了内置的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;
当然,当我导入它时,不会发生任何特殊情况,因为表已经存在,所以不会创建“status”列。 在我的研究中,我发现可以使用shell命令导出与表创建分离的数据库(禁用数据库名称和user/pass):

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

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

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

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

您也可以使用MySQLWorkBench。看

您可以使用一个模式比较工具:但随着时间的推移,只有一个得到了更新。“添加新表”和“将新字段添加到现有表”是唯一的操作吗?没有添加触发器、函数等,没有更改字段名、约束、索引等,没有其他更改?@Akina我只添加了表和列。没有列被重命名、删除或其他任何内容,因此请创建一个过程,该过程使用info from INFORMATION_架构和准备好的语句执行所需的升级。这并不难。
INSERT  IGNORE INTO `users` VALUES (1,"bla",1);
CREATE TABLE IF NOT EXISTS 'users';
For every column -> IF NOT EXISTS column in 'users' -> ALTER TABLE 'users' ADD column def;