首页 > 解决方案 > 复制带有约束mysql存储过程的表结构

问题描述

如何将具有所有约束的表结构复制到另一个表中。

我必须使用 CREATE TABLE new_tbl LIKE orig_tbl 将现有数据库的所有表复制到新数据库;陈述。复制表的结构可以正常工作,但无法复制该表的约束。

请检查旧表和新表结构

CREATE TABLE `attribute_groups_old` (
 `id` int unsigned NOT NULL AUTO_INCREMENT,
 `name` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
 `position` int NOT NULL,
 `is_user_defined` tinyint(1) NOT NULL DEFAULT '1',
 `attribute_family_id` int unsigned NOT NULL,
 PRIMARY KEY (`id`),
 UNIQUE KEY `attribute_groups_attribute_family_id_name_unique` (`attribute_family_id`,`name`),
 CONSTRAINT `attribute_groups_attribute_family_id_foreign` FOREIGN KEY (`attribute_family_id`) REFERENCES `attribute_families` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=86 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC

CREATE TABLE `attribute_groups_new` (
 `id` int unsigned NOT NULL AUTO_INCREMENT,
 `name` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
 `position` int NOT NULL,
 `is_user_defined` tinyint(1) NOT NULL DEFAULT '1',
 `attribute_family_id` int unsigned NOT NULL,
 PRIMARY KEY (`id`),
 UNIQUE KEY `attribute_groups_attribute_family_id_name_unique` (`attribute_family_id`,`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC

任何人请给我这个问题的解决方案。

谢谢,

标签: mysqlstored-procedures

解决方案


推荐阅读