每天学习一点点,成功增加一大步

mysql 实用性命令-复制数据

MYSQL zhanghui 509℃

简述

有的时候会遇到这么个场景,有两张独立的数据表,它们之间存在某种需求,比如:需要将 A 表里面的某几个字段的数据复制到 B 表中相对应(有可能不同名)的字段里面;或者是将整条数据都复制的可能性。这种情景下有几种处理方式

  1. 手动复制效率低下,容易出错。
  2. 通过 SQL 语句

SQL 解决

基本语句:

INSERT INTO new_table_name (column_name(s)) SELECT column_name(s) FROM old_table_name;

复杂点带有条件,意思是只想复制 A 表中某几条数据,语句:

INSERT INTO new_table_name (column_name(s)) SELECT column_name(s) FROM old_table_name WHERE `id` IN (1);

注意事项:

  • 字段名称、数量可以不一致,但是互相插入匹配的数据类型一定要一致,如果长度超出了也是不能插入的。
  • 如果在需要插入的表中某个字段不允许为空,那么则需插入的时候,为这些字段设置默认值,不然新增一条数据时,是不允许有空字符存在的

2022-03-02 记

今天遇到特殊的需求,也是从 B 表复制到 A 表的操作,而中间有几个字段在 B 表中不存在,A 表中有,那么解决的方法,就只能从 SELECT 的角度做调整了,例子就接着来。

INSERT INTO new_table_name (column_name(s), `new_column_name`)  SELECT column_name(s), 100 AS `new_column_name` FROM old_table_name WHERE `id` IN (1);

转载请注明:隨習筆記 » mysql 实用性命令-复制数据

喜欢 (0)