假设我想从数据库中删除一个名为“abc cba”的用户。所以我运行以下查询:
DELETE FROM table WHERE fname = 'abc' AND last name = 'cba'; commit;
Run Code Online (Sandbox Code Playgroud)
现在,可以有更多我不知道这个名字的用户。显而易见的选择是事先运行 select 语句并检查我是否删除了我真正想删除的内容,但我仍然是人类,我可以忘记这一点并最终搜索备份以检索丢失的数据。
我的问题是:有没有办法对语句强加某些规则,之后它们将不会执行 DML 语句(例如,如果删除的行数超过某个阈值,则不执行删除)?
假设我在一行上运行多列更新。如果某些列包含与数据库中先前存在的值相同的值,则数据库引擎是否将新数据物理写入数据库?如果是,如何避免?
我即将实施一项作业,该作业将在大表上运行更新,并且大多数值将相同,但仍然必须重新计算它们。我想知道即使没有必要,更新是否也会重写每一列,因为存储介质会更快地降级。