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

相关推荐
皇族崛起20 分钟前
【视觉多模态】- 3D建模尝试 I (广场3D建模,失败)
数据库·人工智能·3d·性能优化
JavaLearnerZGQ22 分钟前
redis笔记大全
数据库·redis·笔记
资生算法程序员_畅想家_剑魔40 分钟前
Java常见技术分享-26-事务安全-锁机制-作用与分类
java·开发语言·数据库
Vic1010143 分钟前
PostgreSQL 中 nextval() 的线程安全性解析
java·数据库·postgresql
写代码的小阿帆1 小时前
Redis缓存健壮性——穿透、雪崩与击穿防护
数据库·redis·缓存
wangqiaowq2 小时前
使用 mysqldump 导出 + mysql 导入
数据库
qq_317620312 小时前
第23章-中级项目练习案例(15个)
数据库·爬虫·web开发·python项目·api开发·python案例
是三好2 小时前
SQL 性能分析及优化
android·数据库·sql
indexsunny2 小时前
互联网大厂Java面试实战:从Spring Boot到微服务的逐步深入
java·数据库·spring boot·微服务·kafka·监控·安全认证
小光学长3 小时前
ssm手工艺品交易平台4xccvou1(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
java·数据库·spring