社区
MySQL
帖子详情
mysql的on duplicate key update 如何用子查询代替
DrSmart
2014-06-25 05:23:24
关系数据库中mysql的on duplicate key update 如何用子查询代替,用了后发现 id主键自增太快,如何用子查询(一个sql语句)代替来解决下面的例子
INSERT INTO test(name) VALUES ('user') ON DUPLICATE KEY UPDATE name='user'
...全文
377
8
打赏
收藏
mysql的on duplicate key update 如何用子查询代替
关系数据库中mysql的on duplicate key update 如何用子查询代替,用了后发现 id主键自增太快,如何用子查询(一个sql语句)代替来解决下面的例子 INSERT INTO test(name) VALUES ('user') ON DUPLICATE KEY UPDATE name='user'
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
WWWWA
2014-06-26
打赏
举报
回复
建议用2条SQL语句解决
DrSmart
2014-06-26
打赏
举报
回复
嗨,看来还是传统方式查询吧, mysql这设计的好2啊。
ACMAIN_CHM
2014-06-25
打赏
举报
回复
无好方法,建议使用两个语句先 update a,b set a.name=b.name where a.id=b.id insert into a (name) select name from b where id not in (select id from a)
码无边
2014-06-25
打赏
举报
回复
select max(id) from tb limit 1
DrSmart
2014-06-25
打赏
举报
回复
环境 mysql 5.5 还有啥可行的方法没,嘿嘿
rucypli
2014-06-25
打赏
举报
回复
跳id本身就数据库为了更高的效率才执行的 可以把mysql降到5.0的版本就不跳了
DrSmart
2014-06-25
打赏
举报
回复
有唯一索引,主要问题是防止id自增,replace什么的,id都自增很蛋疼,就是说保持数据内容不变时,本条id不增加,下一条插入的id也连续, ON DUPLICATE KEY UPDATE虽然本条id变但下一条的id还是跳过去了
wwwwb
2014-06-25
打赏
举报
回复
USER上有没有索引?参考REPLACE INTO
【
mysql
】on
duplicate
key
update
1 on
duplicate
key
update
在向数据库进行插入数据时,字段有唯一索引,并且插入的数据和数据库已存在的数据有唯一性冲突,这时会报 唯一字段异常; 解决办法: 1、 先根据唯一性先对表进行
查询
,如果存在,则不插入,不存在,则保存(这种方法仅仅限于单条数据插入); // 比如User 对象中的username是唯一性字段 public int add(User model) { User temp = dao.selectByUsername(model.getUsername());
mysql
特有的SaveOr
Update
方法——“insert into … on
duplicate
key
update
”更新部分字段、多个字段
ON
DUPLICATE
KEY
UPDATE
子句可以包含多个列分配,以逗号分隔。 insert into Shops(shopid, viewtotal) values (1, 123456), (2, 234567), (3, 345678) on
duplicate
key
update
shopid = values(shopid), viewtotal = values(viewtotal) 注意:此方法(ON
DUPLICATE
KEY
UPDATE
)只适用于 Mys.
ON
DUPLICATE
KEY
UPDATE
用法与说明
用法 如果待插入的行数据将导致唯一索引或主键中的值重复,则会按照ON
DUPLICATE
KEY
UPDATE
子句的要求更新原来的行。 官网地址说明:https://dev.
mysql
.com/doc/refman/8.0/en/insert-on-
duplicate
.html INSERT INTO user (id, name) VALUES (1, '张三') ## 第一部分 ON
DUPLICATE
KEY
UPDATE
Oracle数据库 on
duplicate
key
update
功能
虽然 Oracle 数据库没有直接的 on
duplicate
key
update
功能,但可以通过使用 MERGE 语句来实现相同的效果。MERGE 语句允许我们根据一组条件将 INSERT 和
UPDATE
操作合并到一条语句中,从而在插入数据时处理唯一约束冲突。通过将目标表和源表设置为同一表,我们可以在 MERGE 语句中模拟类似于 on
duplicate
key
update
的行为。这样,我们可以更灵活地处理插入冲突,而不是简单地插入失败。
mysql
进行批量修改(包括 on
duplicate
key
update
)
1. on
duplicate
key
update
是
mysql
的 特有功能(必须得设定主键,否则,会不停的进行插入操作) 有就进行插入,没有就根据主键进行更新 1. 没有设定主键 create table sql_test.on_
duplicate
_
key
_
update
_employee ( id int not null, name varchar(20) null, pa...
MySQL
56,687
社区成员
56,710
社区内容
发帖
与我相关
我的任务
MySQL
MySQL相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MySQL相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章