mysql复制表结构的几种方式

一 远程复制 :

-- t_organization_student
CREATE TABLE `t_organization_student`  (
  `ORG_STU_ID` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '组织学生ID',
  `STU_ID` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '学生ID',
  `ORG_ID` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '组织ID',
  `ADD_USER_ID` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '添加者',
  `ADD_TIME` varchar(14) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '添加时间',
  `UPD_USER_ID` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
  `UPD_TIME` varchar(14) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新时间',
  PRIMARY KEY (`ORG_STU_ID`) USING BTREE,
  INDEX `ORG_ID`(`ORG_ID`) USING BTREE
) ENGINE=FEDERATED CONNECTION='mysql://root:123456@192.168.2.83:3308/basesystem/t_organization_student';

二 本地复制(存储过程):

此方式不复制 主键:

set @tableTheoryItem = CONCAT('t_theory_item_',tableType,'_',groupMark);

set @createTable=concat('create table ',@tableTheoryItem,' SELECT * FROM t_theory_item_samp WHERE 1=2');
prepare stmt from @createTable;
EXECUTE stmt;
deallocate prepare stmt; -- 释放掉预处理段

此方式会复制主键 (like):

set @createTable=concat('CREATE TABLE ',@texaminee,' LIKE t_examinee_samp') ;
	prepare stmt from @createTable;
	EXECUTE stmt;
	deallocate prepare stmt; -- 释放掉预处理段
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值