mysql - 在重复的情况下更新。在第一次的情况下插入
问题描述
我有一个这样的 MySQL 表。
表/动物
Id-Publish-Update-Name
1--17:00---01:00--Dog
2--18:00---01:00--Cat
3--19:00---03:00--Penguin
添加“企鹅”。我做的。
INSERT INTO Animals (Name) VALUES ('Penguin')
接下来我要做的是“添加企鹅”。但是,如果“企鹅”已经存在,则只更新“更新”,不要添加新列。
解决方案
MySQL 支持on duplicate key update
:
insert into animals (publish, update, name)
values (?, ?, ?)
on duplicate key update publish = values(publish), update = values(update);
为此,您需要一个唯一索引或约束name
:
create unique index unq_animals_name on animals(name);
推荐阅读
- react-native - 将 SafeAreaView 与 react-native-webview 一起使用
- linux - Spark-submit 在错误的目录中查找
- r - Git 无法识别我在 RStudio 中的全局 user.email
- reactjs - 如何创建与线连接的圆圈,以在 React Native 中显示进度报告
- haskell - 在纯 nix 中使用 http-client/http-client-tls 时堆栈执行失败
- sql - 连接两个表,使用第一个表中的值,除非它为空,否则使用第二个表中的值
- html - 新的 Firefox 指纹识别器功能在做什么?
- javascript - 无法读取 null Sharetribe CMS 的属性“样式”
- java - Chromedriver 78 可能存在问题,Selenium 找不到在 Chrome 中打开的 PDF 的 Web 元素
- android - Android 10 上的 Portsip SDK。注册或刷新没有得到响应