【MySQL】insert into 和select 搭配使用进行表间复制
首先这只是一个用法:
下面是演示。
首先我们准备2张表:
mysql> use z1;
Database changed
mysql> show tables;
+--------------+
| Tables_in_z1 |
+--------------+
| class |
| customer |
| exam |
| gender |
| goods |
| purchase |
| student |
+--------------+
7 rows in set (0.01 sec)mysql> drop table student;
Query OK, 0 rows affected (0.03 sec)mysql> create table student(id int primary key auto_increment,name varchar(20));
Query OK, 0 rows affected (0.02 sec)mysql> insert into student values(null,'张三');
Query OK, 1 row affected (0.01 sec)mysql> update student set name ='z1' where name ='张三';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0mysql> insert into student values(null,'z2');
Query OK, 1 row affected (0.00 sec)mysql> insert into student values(null,'z3');
Query OK, 1 row affected (0.00 sec)mysql> create table student_copy(id int primary key auto_increment,name varchar(20));
Query OK, 0 rows affected (0.13 sec)mysql> select * from student;
+----+------+
| id | name |
+----+------+
| 1 | z1 |
| 2 | z2 |
| 3 | z3 |
+----+------+
3 rows in set (0.00 sec)mysql> select * from student_copy;
Empty set (0.00 sec)
然后insert into搭配select使用:
mysql> insert into student_copy select * from student;
Query OK, 3 rows affected (0.01 sec)
Records: 3 Duplicates: 0 Warnings: 0mysql> select * from student_copy;
+----+------+
| id | name |
+----+------+
| 1 | z1 |
| 2 | z2 |
| 3 | z3 |
+----+------+
3 rows in set (0.00 sec)
可以看到,现在student_copy和student表一样了。
但是我们需要注意这个边界的复制操作是有限制的,必须是数据类型相同的两张表,而且插入的顺序要类型匹配。
mysql> insert into student_copy select name from student;
ERROR 1136 (21S01): Column count doesn't match value count at row 1
mysql> insert into student_copy select name,id from student;
ERROR 1366 (HY000): Incorrect integer value: 'z1' for column 'id' at row 1
mysql> insert into student_copy select id from student;
ERROR 1136 (21S01): Column count doesn't match value count at row 1
mysql> drop table student_copy;
Query OK, 0 rows affected (0.02 sec)
然后我们还要注意,匹配最好还是一模一样的,不然可能会导致错误,像下面的示例,虽然插入成功了,但是是因为我们的实际数据并没有那么大,所以仍旧插入成功,但凡name>19,那就不能插入了。
mysql> drop table student_copy;
Query OK, 0 rows affected (0.02 sec)mysql> create table student2(id int primary key auto_increment,name varchar(99));
Query OK, 0 rows affected (0.02 sec)mysql> insert into student2 select * from student;
Query OK, 3 rows affected (0.01 sec)
Records: 3 Duplicates: 0 Warnings: 0mysql> create table student3(id int primary key auto_increment,name varchar(19));
Query OK, 0 rows affected (0.02 sec)mysql> insert into student3 select * from student;
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0
【MySQL】insert into 和select 搭配使用进行表间复制相关推荐
- mysql中表结构语句_mysql中表数据与表结构复制语句
本文章来给各位朋友介绍一下关于在mysql中进行表数据与表结构复制语句,方法会有很多种下面我来介绍介绍,有需要了解的朋友可参考. 先来总结复制表与结的方法 一.CREATE TABLE 方法 整表复制 ...
- mysql insert into values select from_mysql中复制表数据(select into from和insert into select)...
一.简介 Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应 用程序开发中必 ...
- mysql中selectform_带有select标签的form表单,怎么提交到数据库啊 ?具体情况如下...
如图所示,MySQL中已经建立一张名为biaodan的table,有id,month,revenue三个字段,请问怎么提交到MySQL中去.我想单纯用PHP和和HTML实现,可以吗? 如图所示,MyS ...
- insert into bak select * from test会锁表吗
答案是跟隔离级别有关系, RR级别下会将test表所有记录上行锁,以及所有记录间隔上gap锁:对bak插入的记录加行锁: RC级别下test表不加任何锁:对bak插入的记录加行锁: 即区别在于test ...
- mysql insert语句大全_MySQL中insert into语句的6种写法
insert into是mysql中最常用的插入语句,它有6种写法. 1向原表中某些字段中插入一条记录. 语法:insert into +表名(表中的字段,,)value(字段所对应的记录,,); m ...
- mysql行级锁unique_MySQL行级锁,表级锁,页级锁详解
页级:引擎 BDB. 表级:引擎 MyISAM , 理解为锁住整个表,可以同时读,写不行 行级:引擎 INNODB , 单独的一行记录加锁 表级,直接锁定整张表,在你锁定期间,其它进程无法对该表进行写 ...
- MySQL 数据库常用命令—insert delete update select
引言 MySQL 数据库和其它的数据库一样,也支持增(insert)删(delete)改(update)查(select)操作. insert 基本语法规则 insert into table_nam ...
- mysql insert into select大量数据插入比较慢_史上最全MySQL锁机制
本文主要记录学习MyISAM 和 InnoDB 这两个存储引擎. 为什么要学习锁机制 锁是计算机协调多个进程或线程并发访问某一资源的机制. 因为数据也是一种供许多用户共享的资源,如何保证数据并发访问的 ...
- 【MySQL】MySQL Insert into select 大量锁表导致无法插入
1.概述 原文:因用了Insert into select语句,同事被开除了! Insert into select 请慎用,同事因为使用了 Insert into select 语句引发了重大生产事 ...
最新文章
- nginx反向代理tomcat时遇到一个问题
- 我的WCF之旅(13):创建基于MSMQ的Responsive Service
- Eclipse关联JavaDoc
- 纳税人基本信息与服务器端基本信息不符,网上报税对浏览器有什么要求吗
- 【钢铁缺陷检测算法】数据探索
- Formtec.NCspeed.v5.1.0.4
- 【NLP】一文了解词性标注CRF模型
- xlsx xlsx-style 设置导出的exce表格样式
- [BZOJ]1228: [SDOI2009]ED 博弈SG
- 7款家用智能摄像头横评:小米、乐橙、TP-LINK、海康威视、360、智汀、华为
- ACT托管的CRM软件开发您的业务
- java打印菱形图案_java打印出菱形图案实例详解
- 人工智能,你欠我们一个解释
- Java Web Start(Jnlp)教程
- matlab atem(),ATEM-Ⅱ瞬变电磁仪数据处理软件的研制与应用
- 王者荣耀中皮肤和英雄技能java实现
- 内网穿透-使用https访问局域网里的web
- P5734 【深基6.例6】文字处理软件[c++版]
- 微搭人员招聘管理系统官方模板解析(一)
- Phalcon框架安装
热门文章
- 【沉痛悼念】首届国医大师唐由之逝世 | 曾为毛主席治疗白内障
- 学习计算机在化学中的应用的心得,学习计算机多媒体技术心得体会
- Android超方便 集成 Zxing实现扫一扫,闪光灯,生成二维码图片,解析二维码(条码)等功能
- Ext_多行文本输入框_Ext.form.TextArea
- 论文写作---word单独设置页眉页脚
- 2023北京叶黄素展/北京视力矫正设备展/北京眼睛医学康复展
- 在小程序内嵌的webview中唤醒手机地图app
- coward的个人简介
- 好的plm软件有哪些?plm软件排行榜
- 初入Linux——软件安装