INSERT INTO
MySQL 表中使用 INSERT INTO SQL语句来插入数据。
你可以通过 mysql> 命令提示窗口中向数据表中插入数据,或者通过PHP脚本来插入数据。
insert into 语法 1
INSERT INTO table_name ( field1, field2,...fieldN )
VALUES
( value1, value2,...valueN );
如果数据是字符型,必须使用单引号或者双引号,如:"value"。
insert into 语法 2
INSERT INTO table_name set field1=value1, field2=value2,...fieldN=valueN
此种形式在字段较多情形下,可以防止字段与字段值不匹配
insert into 语法3
可以从另外一张表中查询数据插入
insert into table1 select * from table2
REPLACE INTO
replace into 属于SQL扩展语句,当插入的行与已经存在的行存在主键或者唯一键冲突的时候,删除旧行,插入新行,否则直接插入新行
REPLACE INTO table_name ( field1, field2,...fieldN )
VALUES
( value1, value2,...valueN );
ON DUPLICATE KEY UPDATE
insert into ..... on duplicate key update
在插入时,如果数据表中已经存在冲突的主键或者唯一键,那么将对已经存在的行进行update操作
假设数据表t1中存在a、b、c三个字段,并且a、b为唯一索引,其中某行记录为a=1
那么如下插入语句
INSERT INTO t1 (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE c=c+1;
相当于
UPDATE t1 SET c=c+1 WHERE a=1;
如果 同时存在b=2的记录,那么相当于
UPDATE t1 SET c=c+1 WHERE a=1 OR b=2 LIMIT 1;
存在多行冲突的,只更新一行,所以需要慎重使用
讨论区