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

相关推荐
倔强的石头_几秒前
金仓KES:玩转“五位一体”融合架构,轻松驾驭数字时代
数据库
沐浴露z6 分钟前
详细解析 MySQL 性能优化之【索引下推】
数据库·mysql·性能优化
多情刀客无情刀11 分钟前
目录名在状态信息被获取之前改变了
数据库·postgresql
pale_moonlight29 分钟前
五、Hbase基于环境搭建
linux·数据库·hbase
Elastic 中国社区官方博客34 分钟前
Elasticsearch:相关性在 AI 代理上下文工程中的影响
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
程序员卷卷狗42 分钟前
联合索引的最左前缀原则与失效场景
java·开发语言·数据库·mysql
蓝色猪猪侠2 小时前
postgresql数据库的安装
数据库
敖云岚2 小时前
【疑难解答】MySQL 报错 Public Key Retrieval is not allowed
数据库·mysql
小旺不正经3 小时前
Linux介绍及常用命令
linux·运维·数据库