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

相关推荐
workflower29 分钟前
软件压力测试
数据库·压力测试·需求分析·个人开发·极限编程·结对编程
2501_9411118240 分钟前
使用Scikit-learn进行机器学习模型评估
jvm·数据库·python
爬山算法1 小时前
Redis(128)Redis的跳表(Skip List)是如何实现的?
数据库·redis·list
a***13141 小时前
保姆级JavaWeb项目创建、部署、连接数据库(tomcat)
数据库·tomcat·firefox
z***75151 小时前
PostgreSQL 查看数据库及表中数据占用空间大小
数据库·postgresql·oracle
Wang's Blog2 小时前
MySQL: 安装MySQL示例数据库Sakila的完整流程与技术要点
数据库·mysql
Unstoppable222 小时前
八股训练营第 20 天 | MySQL和Redis的区别是什么?Redis有什么优缺点、为什么用Redis查询会比较快?
数据库·redis·mysql·八股
kka杰2 小时前
MYSQL结构操作DDL指令2.表操作
数据库·mysql
曾经的三心草2 小时前
Mysql
数据库·mysql·oracle
河铃旅鹿2 小时前
Android开发-java版:SQLite数据库
android·数据库·笔记·学习·sqlite