强制执行数据库约束:代码vs sql

cbr*_*lak 0 php sql postgresql

这是对这个问题的跟进.

这是我的架构

CREATE TABLE A(
     id serial NOT NULL,
     date timestamp without time zone,
     type text,
     sub_type text,
     filename text,
     filepath text,
     filesize integer,
     lock_status int
 );
Run Code Online (Sandbox Code Playgroud)

在此数据库中,只要未设置"lock_status",用户就可以更新类型,子类型,文件名,文件路径,文件大小.

因此,在网页代码(php)中,我可以在更新项目之前检查lock_status.

但是,可能存在另一个用户在第一个用户的检查和更新之间的时间内更新了锁定状态的情况.

那么,在行更新之前,SQL中是否有一种方法可以检查锁定状态?

  • 网页代码在php中
  • 数据库是PostgreSQL

编辑添加的类型,子类型到上面的可编辑字段列表

Dav*_*ant 5

当然,使用UPDATE ... WHERE lock_status = 0.或者,您可以尝试使用存储过程.