Mysql insert语句类型
- INSERT IGNORE INTO
- 当插入数据时,如果出现错误,如主键或唯一键冲突,MySQL将不会返回错误,而是以警告的形式返回。使用
IGNORE
关键字时,需要确保语句本身没有问题,否则也会被忽略掉。
- ON DUPLICATE KEY UPDATE
- 当插入的数据的主键或唯一键与现有数据冲突时,不是简单地忽略错误,而是执行一个
UPDATE
语句。如果UPDATE
语句没有改变任何数据(例如,使用id = id
),则其功能与INSERT IGNORE INTO
相同,但错误不会被忽略。
- INSERT ... SELECT ... WHERE NOT EXISTS
- 这种插入方式基于一个
SELECT
语句的条件来决定是否插入数据。它不仅可以通过主键或唯一键来判断,还可以通过其他条件来决定。如果SELECT
子句中指定的条件在目标表中不存在,那么将执行插入操作。
- REPLACE INTO
- 如果目标表中存在与新插入数据的主键或唯一键相同的记录,则先删除这些记录,然后再插入新的记录。需要注意的是,如果原始记录有多个字段,而新记录只提供了部分字段,那么未提供字段的值将被设置为
NULL
。
Loading...