对于mysql的insert 大家是在熟悉不过了,但有相当一部分人(包括作者本人在写这篇文章之前)只是对insert into table_name(col_name1,col_name2,……) values(value1,value2,……)比较熟悉,而对insert 的其他功能知之甚少,我们,先来看一下mysql的insert语法
1:
INSERT [LOW_PRIORITY | DELAYED] [IGNORE] [INTO] tbl_name [(col_name,...)] VALUES (expression,...),(...),... or INSERT [LOW_PRIORITY | DELAYED] [IGNORE] [INTO] tbl_name [(col_name,...)] SELECT ... or INSERT [LOW_PRIORITY | DELAYED] [IGNORE] [INTO] tbl_name SET col_name=expression, col_name=expression, ...
2:下面我通过一些实例来说明一下它的用法。
(1)建表
create table firsttb( id int auto_increment primary key, name varchar(20), age int, sex boolean );
(2):插入数据
一次插入多条
insert into firsttb(name,age,sex) values('aaa',10,0),('bbb',20,1),('ccc',30,1)
数据库里插入3条记录。 insert into firsttb(name,age,sex) select name,age,sex from firsttb
将再次插入3条记录。
我们还可以通过
insert into firsttb set name ='fff',age=50,sex=1
插入记录
注意的问题
1:INSERT INTO table1(col1,col2,......) VALUES(值1,值2,......), (值1,值2,......)
就我所知,一次插入多条纪律的此SQL只能在mysql上用。它不是标准的sql语句。
2:mysql不支持insert all和inset----select union一次插入多条。 INTO tbl_nname (col1,col2) VALUES(col2*2,15); 因為:欄位 col1 的值先填入後,才可以計算欄位 col2