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语句的文档

相关推荐
JAVA学习通10 分钟前
Mysql进阶---存储过程&变量&SQL编程
数据库·mysql
阿里云大数据AI技术15 分钟前
朝阳永续基于阿里云 Milvus 构建金融智能投研产品“AI 小二”
数据库·人工智能
百***490025 分钟前
Redis-配置文件
数据库·redis·oracle
老纪的技术唠嗑局27 分钟前
OceanBase 年度发布会 Hands-on AI Workshop 回顾
数据库
艾体宝IT31 分钟前
艾体宝干货 | Redis Python 开发系列#5 高可用与集群部署指南
数据库
3***891939 分钟前
开放自己本机的mysql允许别人连接
数据库·mysql·adb
X***C86243 分钟前
使用bitnamiredis-sentinel部署Redis 哨兵模式
数据库·redis·sentinel
f***01931 小时前
CC++链接数据库(MySQL)超级详细指南
c语言·数据库·c++
q***23571 小时前
MySQL 篇 - Java 连接 MySQL 数据库并实现数据交互
java·数据库·mysql
W***95241 小时前
在Spring Boot项目中使用MySQL数据库
数据库·spring boot·mysql