MySQL选择性复制表数据
在MySQL中,用什么命令可以实现选择性复制表数据吗?
比如,从A表查询id、name的所有数据,插入到表B的a_id、name。
可以的,而且很方便,组合INSERT和SELECT命令就行。
1读取一个表
假设有表order,要读取表 user 中部分字段的所有值,并插入到表中。命令如下:
INSERTINTOorder(title,description,update_time)SELECTname,desc,unix_timestamp(now())FROMuser;
这条语句要求目标表order必须存在,而且字段已经定义好。
由于目标表order已经存在,所以除了能够插入源表user的字段外,还可以插入常量,如上的时间now()。
2同时创建表
同上的例子,但是order表不存在,我们从user表中读取数据,再创建order表,之后再插入数据:
SELECTname,descINTOorderFROMuser;
这里要求order表原本不存在。
3读取多表
现在有3个表,boy、girl和target,我们要从boy、girl表中筛选若干个字段,插入到target指定的字段中,命令如下:
INSERTINTOtarget(bname,gname,update_time)SELECTb.name,g.name,unix_timestamp(now())fromboyasbjoin`girl`asg;
如果target表原本没有数据,那么执行之后,target中的数据量就是表girl和boy两个表数据数的乘机。
参考资料:
- 语法:MySQL中INSERTINTOSELECT的使用
- mysql中SELECTINTO和INSERTINTOSELECT两种表复制语句
热门推荐
10 新年门口花束祝福语简短
11 盘锦结婚祝福语大全简短
12 父母生日祝福语 简短独特
13 家庭恩爱祝福语简短英文
14 高考俄语祝福语大全简短
15 虎年祝福语 诗句唯美简短
16 生日婚礼祝福语简短精辟
17 虎年喝酒拜年祝福语简短
18 教师闺蜜祝福语简短