MYSQL 复制其他表数据

本文介绍如何通过SQL语句实现不同表之间的字段复制,包括全部字段和指定字段的复制方法,以及根据关联ID进行数据更新的技术细节。

本表没数据复制其他表全部字段


	CREATE TABLE `test1` (
	  	`field_1` bigint(20) DEFAULT NULL,
		`field_2` bigint(20) DEFAULT NULL,
		`field_3` bigint(20) DEFAULT NULL,
	  PRIMARY KEY (`id`) USING BTREE
	) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='测试1';
	
	CREATE TABLE `test2` (
	  	`field_1` bigint(20) DEFAULT NULL,
		`field_2` bigint(20) DEFAULT NULL,
		`field_3` bigint(20) DEFAULT NULL,
	  PRIMARY KEY (`id`) USING BTREE
	) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='测试2';

	-- 复制表1全部字段到表2
	INSERT INTO test2 SELECT * FROM test1

全部字段复制需要保证复制与被复制的两个表字段名称,顺序,数量,类型完全一致。

本表没数据复制其他表指定字段


	CREATE TABLE `test1` (
	  	`field_1` bigint(20) DEFAULT NULL,
		`field_2` bigint(20) DEFAULT NULL,
		`field_3` bigint(20) DEFAULT NULL,
	  PRIMARY KEY (`id`) USING BTREE
	) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='测试1';
	
	CREATE TABLE `test3` (
	  	`field_1` bigint(20) DEFAULT NULL,
		`field_2` bigint(20) DEFAULT NULL,
		`field_3` bigint(20) DEFAULT NULL,
		`field_4` bigint(20) DEFAULT NULL,
		`field_5` bigint(20) DEFAULT NULL,
		`field_6` bigint(20) DEFAULT NULL,
	  PRIMARY KEY (`id`) USING BTREE
	) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='测试3';

	-- 复制表1指定字段到表3
	INSERT INTO test3 (field_1,field_2,field_3) SELECT field_1,field_2,field_3 FROM test1

指定字段复制需要保证指定字段与被指定字段名称一致。

总结:字段名称并不是必须一致,复制其实翻译出来SQL文就是 INSERT INTO 表名 (字段1,字段2) VALUES (值1,值2),至于值是哪个字段的值就无所谓了,但既然是复制其他表数据如果不对应好字段的话可能复制过来的数据就是混乱的,那也就失去的复制的意义。

本表有数据根据关联id复制其他表字段

可以使用 UPDATE 语句将表 A 的字段数据复制到表 B 的字段上

	UPDATE table_b AS B
	INNER JOIN table_a AS A ON A.id = B.id
	SET 
	    B.column1 = A.column1,
	    B.column2 = A.column2,
	    B.column3 = A.column3;

在上述示例中,请将 table_a、table_b 替换为你实际的表名,并将 column1、column2、column3 替换为你要复制的具体字段。
该语句使用内连接(INNER JOIN)将表 B 和表 A 在 id 字段上进行匹配,并更新表 B 中相应的字段值为表 A 对应行的字段值。
请确保表 A 和表 B 具有相同的 id 字段,并且数据类型和长度匹配。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值