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

相关推荐
bing_1586 小时前
MongoDB中如下参数是什么含义
数据库·mongodb
一过菜只因6 小时前
MySql学习(2)
数据库·学习·mysql
拾起零碎6 小时前
U8/用户权限合并查询
sql
Geoking.7 小时前
Redis 中 ziplist 与 quicklist 解析与对比
数据库·redis·缓存
思成不止于此7 小时前
MySQL 查询进阶(二):行筛选与条件查询
数据库·笔记·学习·mysql
java_logo7 小时前
Milvus GUI ATTU Docker 容器化部署指南
运维·数据库·docker·容器·eureka·milvus
武帝为此7 小时前
【MongoDB 数据库介绍】
数据库·mongodb
悦来客栈的老板7 小时前
AST反混淆实战|reese84_jsvmp反编译前的优化处理
java·前端·javascript·数据库·算法
大卫小东(Sheldon)7 小时前
SQL查询中的窗口函数(主要以 PostgreSQL 为例)
大数据·sql·postgre
倔强的石头_7 小时前
灵活性与高性能兼得:KingbaseES 对 JSON 数据的全面支持解析
数据库