MySQL Song表UPDATE修改歌曲发行年的正确写法问题求助
正确UPDATE语句写法
你之前的前两条UPDATE语句逻辑没问题,第三条没有加WHERE筛选条件导致全表更新,修改后完整代码如下:
-- Write your UPDATE statements here: UPDATE Song SET Title = 'With Or Without You' WHERE ID = 200; UPDATE Song SET Artist = 'Aritha Franklin' WHERE ID = 300; UPDATE Song SET ReleaseYear = 2021 WHERE ReleaseYear > 1990; SELECT * FROM Song;
之前错误写法的原因说明
- 写
WHERE ID = (100, 200)报错是因为单值匹配运算符=不能用于匹配多个值的集合,多值匹配需要改用IN运算符,即WHERE ID IN (100, 200),但这种写法是硬编码指定ID,不如直接按发行年筛选更贴合题目要求,适配表内更多数据的场景。 - 添加CHECK约束属于多余操作,题目仅要求修改符合条件的行,不需要限制整个表的字段取值,且你添加约束后依然没有加
WHERE条件就执行更新,会触发不符合约束的旧数据校验失败。
内容的提问来源于stack exchange,提问作者user16775217
相关产品推荐
相关产品推荐

