<
>

mysql insert语句操作实例讲解

2019-01-05 10:03:18 来源:易采站长站 作者:王振洲

INSERT INTO...SELECT的ON DUPLICATE KEY UPDATE


insert into tbl_name1(a,b,c)
  select col1,col2,col3 from tbl_name2
ON DUPLICATE KEY UPDATE c=values(c);

INSERT DELAYED

如果您的客户端不能等待INSERT完成,则这个选项是非常有用的,当一个客户端使用INSERT DELAYED时,会立刻从服务器处得到一个确定。并且行被排入队列,当表没有被其它线程使用时,此行被插入。

使用INSERT DELAYED的另一个重要的好处是,来自许多客户端的插入被集中在一起,并被编写入一个块。这比执行许多独立的插入要快很多。


INSERT DELAYED INTO worker (name) values (‘tom'), (‘paul');

使用DELAYED时有一些限制:

1.INSERT DELAYED仅适用于MyISAM, MEMORY和ARCHIVE表。对于MyISAM表,如果在数据文件的中间没有空闲的块,则支持同时采用SELECT和INSERT语句。在这些情况下,基本不需要对MyISAM使用INSERT DELAYED。

2.INSERT DELAYED应该仅用于指定值清单的INSERT语句。服务器忽略用于INSERT DELAYED...SELECT语句的DELAYED和INSERT DELAYED...ON DUPLICATE UPDATE语句的DELAYED。

3.因为在行被插入前,语句立刻返回,所以您不能使用LAST_INSERT_ID()来获取AUTO_INCREMENT值。AUTO_INCREMENT值可能由语句生成。

4.对于SELECT语句,DELAYED行不可见,直到这些行确实被插入了为止。

5.DELAYED在从属复制服务器中被忽略了,因为DELAYED不会在从属服务器中产生与主服务器不一样的数据。

您可能感兴趣的文章:

MySQL优化insert性能的方法示例mysql 操作总结 INSERT和REPLACEmysql中insert与select的嵌套使用方法正确使用MySQL INSERT INTO语句MYSQL 小技巧 -- LAST_INSERT_IDMySQL中insert语句的使用与优化教程MySql insert插入操作的3个小技巧分享MySQL因大事务导致的Insert慢实例分析
暂时禁止评论

微信扫一扫

易采站长站微信账号