【MySQL INSERT INTO / ON DUPLICATE KEY与SELECT语句问题】教程文章相关的互联网学习教程文章

关于使用MySQL语法ON DUPLICATE KEY UPDATE单个增加更新及批量增加更新的sql【代码】

应用场景: 在实际应用中,经常碰到导入数据的功能,当导入的数据不存在时则进行添加,有修改时则进行更新,在刚碰到的时候,第一反应是将其实现分为两块,分别是判断增加,判断更新,后来发现在mysql中有ON DUPLICATE KEY UPDATE一步就可以完成,感觉实在是太方便了,该语句是基于唯一索引或主键使用,比如一个字段a被加上了unique index,并且表中已经存在了一条记录值为1。比如:下面两个语句会有相同的效果:INSERTINTO...

Mysql insert without auto-increase when duplicate【代码】

INSERTINTO video_tag_all(tagname,ctime) SELECT‘利物浦‘,1413954816FROM video_tag_all WHERE (SELECT last_insert_id(id) FROM video_tag_all WHERE tagname=‘利物浦‘) ISNULL LIMIT 1; SELECT LAST_INSERT_ID();背景:使用insert ignore或insert ... on duplicate key update,都会使自增字段加1,造成不必要的数据空洞,上面的SQL避免了该问题并能够在任何时候都拿到记录ID缺陷:必须保证表初始化时有一条记录,否则selec...

MYSQL的REPLACE和ON DUPLICATE KEY UPDATE语句介绍解决问题实例

在对看看的后台进行排序的时候,遇到了一个像这样的需求,在电影表中有ID(主键自增)和orderby(排序字段) ,假设有十条数据id分别从1-10之间,对应的orderby也是从1-10之间,我现在想把id=9的数据移动到第三的位置(id=3)的这个位置,并且保证之前的数据排列顺序(即id=3的orderby=4,id=4的orderby=5…id=8的orderby=9),这样如果用循环的形式是可以解决数据的问题,但是这样操作数据库过程太多,现在就想用一条sql语句来解决这个问题.下面来看...

mysql ON DUPLICATE KEY UPDATE语句示例

MySQL 自4.1版以后开始支持INSERT … ON DUPLICATE KEY UPDATE语法,使得原本需要执行3条SQL语句(SELECT,INSERT,UPDATE),缩减为1条语句即可完成。例如ipstats表结构如下:复制代码 代码如下:CREATE TABLE ipstats (ip VARCHAR(15) NOT NULL UNIQUE,clicks SMALLINT(5) UNSIGNED NOT NULL DEFAULT ‘0‘); 原本需要执行3条SQL语句,如下:复制代码 代码如下:IF (SELECT * FROM ipstats WHERE ip=‘192.168.0.1‘) { UPDATE ip...

MySQL INSERT ON DUPLICATE KEY UPDATE【代码】

来源:https://www.mysqltutorial.org/mysql-insert-or-update-on-duplicate-key-update/Introduction to the MySQL INSERT ON DUPLICATE KEY UPDATE statementThe INSERT ON DUPLICATE KEY UPDATE is a MySQL’s extension to the SQL standard’s INSERT statement.When you insert a new row into a table if the row causes a duplicate in UNIQUE index or PRIMARY KEY , MySQL will issue an error.However, if you specify t...

Mysql中Insert into xxx on duplicate key update问题

例如,如果列a被定义为unique,并且值为1,则下列语句有同样的效果,也就是说一旦出入的记录中存在a=1的情况,直接更新c = c + 1,而不执行c = 3的操作。 复制代码 代码如下:insert into table(a, b, c) values (1, 2, 3) on duplicate key update c = c + 1;1 update table set c = c + 1 where a = 1; 另外值得一提的是,这个语句知识mysql中,而标准sql语句中是没有的。 INSERT INTO .. ON DUPLICATE KEY更新多行记录 如果在INS...

mysql 中 insert on duplicate key update 的用法【代码】

处理很多大数据量插入重复数据有唯一键时使用,这种用法只能用于mysql中,其他数据库不适用1、在xml文件中常用写法:<update id="UPDATE_HOTEL_COUNTY_DISTRICT" parameterType="java.lang.String">INSERT INTO VST_SEARCH_PROD_HOTEL(PRODUCT_ID,COUNTY_DISTRICT_ID,COUNTY_DISTRICT_NAME)(SELECTt1.PRODUCT_ID,t2.DISTRICT_ID COUNTY_DISTRICT_ID, t2.DISTRICT_NAME COUNTY_DISTRICT_NAMEFROMVST_SEARCH_PROD_HOTEL t1LEFT JOIN ...

ERROR 1130: Host '192.168.1.3' is not allowed to connect to this MySQL ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'【代码】

use mysqlmysql> select host, user from user;将相应用户数据表中的host字段改成‘%‘; update user set host=‘%‘ where user=‘root‘;ERROR 1062 (23000): Duplicate entry ‘%-root‘ for key ‘PRIMARY‘ 不予理会 flush privileges;重新远程连接OK192.168.1.3' is not allowed to connect to this MySQL ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'' ref='nofollow'>ERROR 1130: Host '192.168.1.3'...

php – MySQL ON DUPLICATE KEY插入审计或日志表【代码】

有没有办法实现这个目标?INSERT IGNORE INTO some_table (one,two,three) VALUES(1,2,3) ON DUPLICATE KEY (INSERT INTO audit_table VALUES(NOW(),'Duplicate key ignored')我真的不想为此使用PHP

MySql避免重复插入记录方法(ignore,Replace,ON DUPLICATE KEY UPDATE)

MySql避免重复插入记录方法(ignore,Replace,ON DUPLICATE KEY UPDATE)标签:本文系统来源:http://www.cnblogs.com/studyNT/p/5564021.html

mysql插入数据报错IntegrityError: (1062, &quot;Duplicate entry &#39;xx&#39; for key &#39;xxxxx&#39;&quot;)

1.问题描述 MySQL插入数据的时候报错,提示如下: IntegrityError: (1062, "Duplicate entry ‘xx‘ for key ‘xxxxx‘")2.问题分析 根据错误提示我们可以大致得到以下信息: 1.IntegrityError表示这个字段在MySQL中的类型为:整型。 2.Duplicate Entry:“Duplicate”——something that is an exact copy of something else。所以这句话的意思是:对于键xxxxx已经存在一个值为“xx”了,所以当插入重复的值时就会提示该错误。一般...

pymysql.err.IntegrityError: (1062, “Duplicate entry ‘ ‘ for key ‘PRIMARY‘“)【代码】

在python中用insert into写入mysql数据库时,可能会出现如题所示异常。 当然,如何改是属于数据方面的知识,网上有很多,不在这里述说。 本文要解决的是:如何在程序中获取该错误,并进行异常处理。 一、捕获异常。常用方法:当然在程序调试过程中出现该异常,用肉眼来看就行了。在程序中就需要捕获该异常。参考Python3 MySQL 数据库连接 - PyMySQL 驱动中的代码:#!/usr/bin/python3 # -*- coding: utf-8 -*- import py...

mysql的replace into和on duplicate key update测试笔记

mysql的replace into和on duplicate key update测试笔记mysql> create table tbl_insert_tmp(id int(5),addr_number int(10), name varchar(20),primary key (id),unique key udx_addr_number (addr_number)); Query OK, 0 rows affected (0.05 sec)mysql> show create table tbl_insert_tmp\G*************************** 1. row *************************** Table: tbl_insert_tmpCreate Table: CREATE TABLE `tbl_...

在 mysql 中利用 Duplicate key, 一句话实现存在的更新不存在插入功能【代码】

INTO radcheck (username,attribute,op,VALUE) VALUES (‘tyson‘,‘Cleartext-Password‘,‘:=‘,‘123‘) on duplicate key update value=‘123‘;注意,radcheck 表中 username 和 attribute 列是个组合的唯一索引。 alter table radcheck add unique key(username,attribute); 在 mysql 中利用 Duplicate key, 一句话实现存在的更新不存在插入功能标签:本文系统来源:http://www.cnblogs.com/zhenfei/p/4573066.html

Mysql主从库同步错误:1062 Error &#39;Duplicate entry &#39;1438019&#39;

mysql主从库同步错误:1062 Error ‘Duplicate entry ‘1438019‘ for key ‘PRIMARY‘‘ on query mysql主从库在同步时会发生1062 Last_SQL_Error: Error &lsquo;Duplicate entry &lsquo;的问题: 显然这个问题是因为插入重复主键导致从库不工作了,错误消息如下 mysql> show slave status\G; *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Ho...