mysql一些insert/update的用法_MySQL
程序员文章站
2022-05-07 09:42:42
...
bitsCN.com
bitsCN.com
mysql一些insert/update的用法
在MySQL中进行条件插入数据时,可能会用到以下语句,现小结一下。我们先建一个简单的表来作为测试:
CREATE TABLE `books` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `name` VARCHAR(200) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `NewIndex1` (`name`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
1.insert ignore into
当插入数据时,如出现错误时,如重复数据,将不返回错误,只以警告形式返回。所以使用ignore请确保语句本身没有问题,否则也会被忽略掉。例如:
INSERT IGNORE INTO books (name) VALUES ('MySQL Manual')
2.on duplicate key update
当primary或者unique重复时,则执行update语句,如update后为无用语句,如id=id,则同1功能相同,但错误不会被忽略掉。例如,为了实现name重复的数据插入不报错,可使用一下语句:
INSERT INTO books (name) VALUES ('MySQL Manual') ON duplicate KEY UPDATE id = id
3.insert … select … where not exist
根据select的条件判断是否插入,可以不光通过primary 和unique来判断,也可通过其它条件。例如:
INSERT INTO books (name) SELECT 'MySQL Manual' FROM dual WHERE NOT EXISTS (SELECT id FROM books WHERE id = 1)
4.replace into
如果存在primary or unique相同的记录,则先删除掉。再插入新记录。
REPLACE INTO books SELECT 1, 'MySQL Manual' FROM books
bitsCN.com
上一篇: 封装的Sqlite3简易操作类
下一篇: 教你直接从MySQL中将数据打印到文件中
推荐阅读
-
mysql中错误:1093-You can’t specify target table for update in FROM clause的解决方法
-
MySQL基础教程之IN的用法详解
-
MySQL修改innodb_data_file_path参数的一些注意事项
-
mysql对于模糊查询like的一些汇总
-
MySQL中使用replace、regexp进行正则表达式替换的用法分析
-
使用Python操作MySQL的一些基本方法
-
mysql自联去重的一些笔记记录
-
mysql的字符串处理函数用法
-
关于mysql create routine 权限的一些说明
-
MySQL因大事务导致的Insert慢实例分析