insertinto多条记录,oracle insert 多条记录

http://www.itjxue.com  2023-01-06 13:32  来源:未知  点击次数: 

MySql中使用INSERT INTO语句更新多条数据的例子

我们知道当插入多条数据的时候insert支持多条语句:

复制代码

代码如下:

INSERT

INTO

t_member

(id,

name,

email)

VALUES

(1,

'nick',

'nick@126.com'),

(4,

'angel','angel@163.com'),

(7,

'brank','ba198@126.com');

但是对于更新记录,由于update语法不支持一次更新多条记录,只能一条一条执行:

复制代码

代码如下:

UPDATE

t_member

SET

name='nick',

email='nick@126.com'

WHERE

id=1;

UPDATE

t_member

SET

name='angel',

email='angel@163.com'

WHERE

id=4;

UPDATE

t_member

SET

name='brank',

email='ba198@126.com'

WHERE

id=7;

这里问题就出现了,倘若这个update

list非常大时(譬如说5000条),这个执行率可想而知。

这就要介绍一下在MySql中INSERT语法具有一个条件DUPLICATE

KEY

UPDATE,这个语法和适合用在需要判断记录是否存在,不存在则插入存在则更新的记录。

具体的语法可以参见:

基于上面这种情况,针对更新记录,仍然使用insert语句,不过限制主键重复时,更新字段。如下:

复制代码

代码如下:

INSERT

INTO

t_member

(id,

name,

email)

VALUES

(1,

'nick',

'nick@126.com'),

(4,

'angel','angel@163.com'),

(7,

'brank','ba198@126.com')

ON

DUPLICATE

KEY

UPDATE

name=VALUES(name),

email=VALUES(email);

注意:ON

DUPLICATE

KEY

UPDATE只是MySQL的特有语法,并不是SQL标准语法!

如何一次插入多条记录的SQL语句?

在使用SQL数据库的时候,我们也许会需要一次像数据库中添加多条记录,那么我们可以使用SQL语句来实现,该语句具体如下:\x0d\x0a--添加一条记录 \x0d\x0aINSERT INTO tableName(col1,col2,col3) VALUES (1,2,3) \x0d\x0a \x0d\x0a--添加多条记录 \x0d\x0aINSERT INTO tableName(col1,col2,col3) \x0d\x0aSELECT 3,4,5 \x0d\x0aUNION ALL \x0d\x0aSELECT 6,7,8 \x0d\x0a \x0d\x0a--从另外的一张表中读取多条数据添加到新表中 \x0d\x0aINSERT INTO tableName(col1,col2,col3) \x0d\x0aSELECT a,b,c FROM tableA \x0d\x0a \x0d\x0a--从其他的多张表中读取数据添加到新表中 \x0d\x0aINSERT INTO tableName(col1,col2,col3) \x0d\x0aSELECT a,b,c FROM tableA WHERE a=1 \x0d\x0aUNION ALL \x0d\x0aSELECT a,b,c FROM tableB WHERE a=2 \x0d\x0a上边代码中的into都可以省略!\x0d\x0a上边代码中的union all如果换成union,则相同记录只插入一次,不会重复插入。\x0d\x0a另外一种方法是SQL Server2008特有的,所以,如果你不是SQL Server2008,就不能使用这种方法了。 \x0d\x0aINSERT INTO MyTable(ID,NAME)VALUES(7,'003'),(8,'004'),(9,'005')\x0d\x0acreate table [TEST]\x0d\x0a(\x0d\x0a [NUM_ID] int primary key\x0d\x0a)\x0d\x0ago\x0d\x0adeclare @temp int\x0d\x0aset @temp=1;\x0d\x0awhile @temp

回答于?2022-12-11

mysql insert into 多条数据

mysql 使用 insert into 语句时报错:

报错语句样式如下:

修改为如下即可:

SQLServer的Insert into插入多条记录的问题

insert?into?wlx_test?(aaa,bbb,ccc,ddd,eee,vote)?

select?'sasj',11,getdate(),1.1,2.22,'1f3f3sf1'

union?all

select?'sasj',11,getdate(),1.1,2.22,'1f3f3sf2'

union?all

select?'sasj',11,getdate(),1.1,2.22,'1f3f3sf3'

使用Union all?语句将多个结果集转为一个结果集,然后再执行插入

一条insert语句批量插入多条记录

首先我们的测试表是一条数据都没有的。

要用一条数据就插入多条数据,我们也是可以用insert into语句来处理的,我们只要在values里指定多条记录的值就行了,每条记录间用逗号来隔开就行。代码如图

执行这条语句后,我们从执行结果上看,也可以看到插入了三条数据。

再看到这个表里的数据,看是不是插入了三条新的数据。

从图中可以看到,确实有3条数据。

(责任编辑:IT教学网)

更多

推荐时间特效文章