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

相关推荐
wuchen10049 小时前
SQLite的外键SQL小总结
数据库·sql·sqlite
u0107475469 小时前
SQL在分布式SQL环境下的JOIN性能优化_减少跨节点数据传输
jvm·数据库·python
鸽芷咕9 小时前
一张表的三种身份证:金仓数据库 OID vs ROWID vs 自增主键选型指南
数据库·oracle
鸽芷咕9 小时前
从边缘到云端:2026年工业物联网时序数据库选型策略
数据库·物联网·时序数据库
雨墨✘9 小时前
CSS如何实现不同屏幕下的字体缩放_利用clamp函数动态调整
jvm·数据库·python
hef2889 小时前
Go语言如何刷LeetCode_Go语言LeetCode刷题教程【速学】
jvm·数据库·python
渡我白衣9 小时前
【MySQL基础】(4):MySQL 数据类型
数据库·人工智能·深度学习·神经网络·mysql·机器学习·自然语言处理
u0107475469 小时前
HTML5中SVG描边虚线Stroke-dasharray的配置技巧
jvm·数据库·python
Dontla9 小时前
JWT认证流程(JSON Web Token)
前端·数据库·json
Mike117.14 小时前
GBase 8a 日期边界写法和时间窗口取数偏差
数据库