小心你的数据库查询窗口,以免误操作

如果你的数据库查询窗口的第一行是DROP DATABASE,你又不小心点击了执行按钮……

有些数据库软件能够智能地执行光标所在行的指令,但有些数据库软件没那么智能,或者需要配置才能变聪明,一不小心,就会把窗口里面的所有SQL都执行一遍,所以使用数据库软件时要注意防范误操作。

先检查再操作

  • 执行UPDATE和DELETE之前,检查是否写了WHERE条件,并用同样条件执行一遍SELECT查询,检查条件是否正确。
  • 执行选择或光标处SQL语句时,检查SQL语句是否选择完整。

及时清理破坏性SQL

在操作数据库时,如果需要执行有副作用的指令,例如DROP、DELETE、INSERT、UPDATE、TRUNCATE等,记得在执行完成后及时清理掉这些语句。可以用以下方式操作:

  • 每执行完一个SQL,就立刻把它删掉。
  • 为了方便查找或记录,不希望把SQL删掉,可以在执行完SQL之后立刻把它注释掉。
  • 在SQL窗口第一行放一个会报错的SQL,如果不小心点了执行,可以让数据库客户端在第一行就停下来。需要注意,有些数据库客户端在失败后会继续执行后面的指令,所以还要慎重。

连接生产系统,不要图方便

生产系统权限意味着巨大的责任,而连接生产系统的方式越容易,犯错误的几率就越大,所以不要为了图方便把自己置于危险境地。可以用以下方法来防范:

  • 不要在同一个系统、同一个数据库软件中同时连接开发系统和生产系统,避免弄错环境。
  • 连接生产系统之前总是手工输入账号密码,不要自动连接,使自己清晰地意识到自己在连接生产系统,同时防止无关人员盗用。
  • 批量执行语句,或导入SQL文件时,先检查SQL内容,确认是否有破坏性指令(例如有些软件生成的导入SQL会先删表),确认无误后再执行。
  • 把在生产系统执行的每条SQL都做好记录,包括执行时间、执行人、操作目的,以备事后追溯。
  • 及时清理生产系统的数据库操作界面里的SQL。
  • 操作完成后及时关闭数据库软件。