首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Insert into select *-覆盖某些列

"Insert into select *-覆盖某些列" 是一种SQL语句,用于将一个表中的数据插入到另一个表中,并可以选择性地覆盖某些列的值。

具体来说,"Insert into select *" 语句的语法如下:

代码语言:sql
复制
INSERT INTO 目标表名 (列1, 列2, 列3, ...) 
SELECT 列1, 列2, 列3, ...
FROM 源表名

其中,目标表是要插入数据的表,源表是提供数据的表。通过这个语句,可以将源表中的数据插入到目标表中,并且可以选择性地覆盖目标表中的某些列的值。

举个例子,假设有两个表:表A和表B,它们的结构如下:

表A:

列1

列2

列3

1

A

X

2

B

Y

3

C

Z

表B:

列1

列2

列3

4

D

W

5

E

V

如果执行以下SQL语句:

代码语言:sql
复制
INSERT INTO 表A (列1, 列2)
SELECT 列1, 列2
FROM 表B

那么表A的内容将变为:

列1

列2

列3

4

D

X

5

E

Y

3

C

Z

可以看到,通过"Insert into select *"语句,我们将表B中的列1和列2的值插入到了表A中,并覆盖了表A中相应的列的值。

在腾讯云的数据库服务中,可以使用腾讯云的云数据库MySQL、云数据库MariaDB等产品来执行这样的SQL语句。这些产品提供了稳定可靠的数据库服务,适用于各种规模的应用场景。

腾讯云云数据库MySQL产品介绍链接地址:https://cloud.tencent.com/product/cdb_mysql

腾讯云云数据库MariaDB产品介绍链接地址:https://cloud.tencent.com/product/cdb_mariadb

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

select into from 与 insert into select用法详解

select into from 和 insert into select都被用来复制表结构和表中数据, 两者的主要区别为: select into from 要求目标表不存在,因为在插入时会自动创建...insert into select from 要求目标表已存在数据库中。...一、INSERT INTO SELECT语句 1、语句形式为: Insert into Table2(field1,field2,…) select value1,value2,… from...并且要复制的字段field,field2…也必须存在 (2)注意Table2的主键约束,如果Table2有主键且不为空,则 field1, field2…中必须包括主键 (3)注意区分 Insert...上面的例子:将会复制表1的结构,而且会把name字段改成iName,phone字段改成IPhone并添加IAge字段(0对应int类型)到新表table2中,对于复制表结构的同时需要增加新的并插入数据的情形很可以用此语句

2K10

insert into select加锁规则补充

insert into select加锁规则补充 昨天的文章中,针对insert into select语句的加锁情况进行了分析: insert into A select * from B; 形如这样的语句...into table_log_new select * from table_log where time>='2020-06-04 12:30:00'; #在会话1的insert into select...into select之前,id=9999999的code值是9999999,而在执行insert into select的时候,在另外一个会话里面,对这个id=9999999的code值进行更改,在...因此可以判断: insert into A select * from B; 这个语句的row模式下,并未对表B产生全表的记录锁。 而在statement模式下,上述语句会对表B产生记录锁和间隙锁。.../ http://stackoverflow.com/questions/2640898/how-to-improve-insert-into-select-locking-behavior

2K20

insert into selectinsert into values区别「建议收藏」

INSERT INTO SELECT语句:从一个表复制数据,然后把数据插入到一个已存在的表中。...将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中, 这时候我们就要使用SELECT INTO 和 INSERT INTO SELECT 表复制语句了。...1.INSERT INTO SELECT语句 语句形式为:Insert into Table2(field1,field2,…) select value1,value2,… from Table1 或者...:Insert into Table2 select  *  from Table1 注意:(1)要求目标表Table2必须存在,并且字段field,field2…也必须存在 (2)注意Table2的主键约束...,如果Table2有主键而且不为空,则 field1, field2…中必须包括主键 (3)注意语法,不要加values,和插入一条数据的sql混了,不要写成: Insert into Table2(field1

64320

INSERT INTO SELECT语句与SELECT INTO FROM语句区别

1.INSERT INTO SELECT语句 语句形式为:Insert into Table2(field1,field2,…) select value1,value2,… from Table1 或者...SQL SELECT INTO 语法 您可以把所有的插入新表: SELECT * INTO new_table_name [IN externaldatabase] FROM old_tablename...或者只把希望的插入新表: SELECT column_name(s) INTO new_table_name [IN externaldatabase] FROM old_tablename...IN 子句可用于向另一个数据库中拷贝表: SELECT * INTO Persons IN ‘Backup.mdb’ FROM Persons 如果我们希望拷贝某些域,可以在 SELECT...下面的例子通过从 “Persons” 表中提取居住在 “Beijing” 的人的信息,创建了一个带有两个的名为 “Persons_backup” 的表: SELECT LastName,Firstname

1.6K10

insert oracle用法,insert into select的实际用法,insertselect

insert into select的实际用法,insertselect INSERT INTO SELECT语句 语句形式为:Insert into Table2(field1,field2,…) select...value1,value2,… from Table1 或者:Insert into Table2 select * from Table1 注意:(1)要求目标表Table2必须存在,并且字段field...也必须存在 (2)注意Table2的主键约束,如果Table2有主键而且不为空,则 field1, field2…中必须包括主键 (3)注意语法,不要加values,和插入一条数据的sql混了,不要写成: Insert...示例如下: 业务背景:在部分字段有变化的情况下,需要把部分数据复制插入到表里; insert into MARKETING_JUMP_MANAGE (ID,JUMP_CHANNEL,JUMP_CLASS...的实际用法,insertselect INSERT INTO SELECT 语句 语句形式为:Insert into Table2(field1,field2,…) select value1,value2

1.1K20

mysql insert into as_mysql insert into select使用方法详解

mysql insert into select使用方法详解2017-11-22 15:47 我们先来看看mysql insert into select的语法规则。...DELAYED被忽略INSERTSELECT。 该INSERT语句的目标表可能出现在查询部分的FROM子句中SELECT。但是,不能插入到表中并从子查询中的同一个表中进行选择。...AUTO_INCREMENT 照常工作。 为确保二进制日志可用于重新创建原始表,MySQL不允许并发插入INSERTSELECT语句。...为避免SELECTINSERT引用同一个表时引用不明确的引用问题 , 请为该SELECT部分中使用的每个表提供唯一的别名,并使用适当的别名限定该部分中的列名。...由于这个问题,在MySQL 5.5.18中, INSERTSELECT ON DUPLICATE KEY UPDATE和INSERT IGNORE… SELECT语句被标记为不安全的基于语句的复制。

1.8K30

数据操纵:SELECT, INSERT, UPDATE, DELETE

select_expression 表示你希望检索的SELECT 也可以被用于检索没有引用任何表的计算。...在这种情况下,你应该使用某些客户端程序例如 mysqldump --tab 或 mysql -e "SELECT ..." > outfile 产生文件来代替它。 SELECT ......302 如果你使用 INSERT ... SELECT 或一个 INSERT ... VALUES 语句插入多值,你可以使用 C API 函数 mysql_info() 得到查询的信息。...Warnings 指出在尝试插入的值中在某些方面可能有问题的数目。在下列任何一个条件下,警告都会发生: 307 308 向一个定义为 NOT NULL 的中插入 NULL 值。...某些老的 MySQL 版本中,你或许可以这样做,但是这是一个 Bug,现在已被修正了。 507 508 为了能够使用 REPLACE,你必须有对该表的 INSERT 和 DELETE 权限。

2.3K20

MySQL的insert into select 引发锁表

MySQL一般我们在生产上备份数据通常会用到 这两种方法: INSERT INTO SELECT CREATE TABLE AS SELECT 注:本文仅针对MySQL innodb引擎,事务是可重复读...RR,数据库版本为5.5 1.INSERT INTO SELECT insert into Table2(field1,field2,...) select value1,value2,... from...如果实在要使用 INSERT INTO SELECT 这种方法,可以使用下面的方法进行优化: 加条件,强制走索引,不要全表扫描,例如 INSERT INTO Table2 SELECT * FROM...CREATE table table1 as SELECT id FROM table2; -- 只复制id这一 注意此建表过程全程锁表。语句执行完毕,才释放元数据锁。...其次,功能不同,INSERT INTO SELECT只是插入数据,必须先建表;CREATE TABLE AS SELECT 则建表和插入数据一块完成。

2K10

Insert into select语句引发的生产事故

[insert_into_select_accident_header.jpg] 前言   Insert into select请慎用。...通过在Baidu的海洋里遨游,他发现了可以使用insert into select实现,这样就可以避免使用网络I/O,直接使用SQL依靠数据库I/O完成,这样简直不要太棒了。然后他就被开除了。...INSERT INTO order_record SELECT * FROM order_today WHERE pay_success_time < '2020-03-08 00:00:00...<= '2020-03-08 00:00:00'; 执行过程 [explain_result_has_index.png] 总结   使用insert into tablA select * from...参考文章 insert into ... select 由于SELECT表引起的死锁情况分析 结尾   如果觉得对你有帮助,可以多多评论,多多点赞哦,也可以到我的主页看看,说不定有你喜欢的文章,也可以随手点个关注哦

2.1K11
领券