1.前言
在数据库操作中插入语法经常用到,以下有两个问题。
- INSERT有几种用法?
- 如何通过SQL在并发插入中实现新增或更新?
2.创建测试表
CREATE TABLE `insert_test` (
`id` int(10) NOT NULL AUTO_INCREMENT COMMENT '自增ID',
`filed_a` varchar(32) DEFAULT '' COMMENT '字段 a',
`filed_b` varchar(32) DEFAULT '' COMMENT '字段 b',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=' insert 语法测试表';
3.INSERT相关语法
3.1单条插入
方式一
INSERT INTO insert_test ( filed_a, filed_b )
VALUES( '字段 a1', '字段 b1' );
方式二
INSERT INTO insert_test set filed_a='字段 a2 ',filed_b='字段 b2 ';
3.2批量插入
注意:列的对应
INSERT INTO insert_test ( filed_a, filed_b )
VALUES
( '字段 a3', '字段 b3' ),
( '字段 a4', '字段 b4' );
3.3INSERT INTO … SELECT
该语法是将查询到的数据插入到当前表,插入列与查询列需要一一对应;
INSERT INTO insert_test_b ( filed_a, filed_b )
SELECT filed_a,filed_b FROM insert_test_a
3.4并发插入
语法:**INSERT … ON DUPLICATE KEY UPDATE **
详见:并发插入语法介绍传送门