SQL——插入已经存在的数据

现在有一套ID为9003的高难度SQL试卷,时长为一个半小时,请你将 2021-01-01 00:00:00 作为发布时间插入到试题信息表examination_info(其表结构如下图),不管该ID试卷是否存在,都要插入成功,请尝试插入它。

|--------------|-------------|------|-----|----------------|---------|---------|
| Filed | Type | Null | Key | Extra | Default | Comment |
| id | int(11) | NO | PRI | auto_increment | (NULL) | 自增ID |
| exam_id | int(11) | NO | UNI | | (NULL) | 试卷ID |
| tag | varchar(32) | YES | | | (NULL) | 类别标签 |
| difficulty | varchar(8) | YES | | | (NULL) | 难度 |
| duration | int(11) | NO | | | (NULL) | 时长(分钟数) |
| release_time | datetime | YES | | | (NULL) | 发布时间 |

如果直接插入则会提示,数据表中已存在该exam_id,该如何处理呢?

难点:不知道该数据是否存在,若存在可用update,若不存在可用insert。

方案:采用replace语句

sql 复制代码
replace into examination_info(exam_id,tag,difficulty,duration,release_time)
values(9003,'SQL','hard',90,'2021-01-01 00:00:00')

参考: MySQL关于replace语句的文档

相关推荐
一叶飘零_sweeeet6 小时前
别等业务中断才补坑!RTO/RPO 核心逻辑与全场景灾备架构选型全攻略
数据库·架构·容灾备份
码农颜7 小时前
6.1.2 常⽤⽅法的问题
数据库·sql·oracle
量子炒饭大师7 小时前
MySQL 5.7 在 CentOS 7 环境安装:从清理 MariaDB 到初始化与完善配置
数据库·mysql·centos·mariadb
明志数科7 小时前
宇树科技IPO背后的产业逻辑:人形机器人从“讲故事“到“交数据“
运维·服务器·数据库
淼澄研学7 小时前
基于RAG与Milvus向量数据库的搜题长尾问题检索实操教程
数据库·milvus
Dovis(誓平步青云)7 小时前
DevEco Studio 6.1.1 Windows 安装实录:从下载校验到首次启动
android·开发语言·数据库·人工智能·windows·harmonyos
Data_Journal7 小时前
什么是 CAPTCHA,它是如何工作的?
java·大数据·服务器·前端·数据库
霸道流氓气质8 小时前
Redis Pub/Sub — 概念、原理、场景与代码示例
数据库·redis·缓存
李高钢8 小时前
C# WPF Prism 进阶(二):区域(Region)与模块化(Module)
java·前端·数据库
long3168 小时前
枚举(Enums)
java·开发语言·数据库