如何在mysql/任何其他RDBMS中实现时间戳锁定协议

如何在mysql/任何其他RDBMS中实现时间戳锁定协议,sql,concurrency,transactions,timestamp,locking,Sql,Concurrency,Transactions,Timestamp,Locking,我已经阅读了一些教程,对锁定协议有了一些了解,并最终了解了可串行性 我正在构建一个小框架和一个使用DAO模式的库。 我在用PHP写东西 我已经创建了一个简单的事务组件,它执行基本方法并锁定与dbms无关的行,因此我可以调用方法: $transact = $sql->transaction(); $transact->begin(); $sql->query() ->select(*) ->from('User') ->where('id

我已经阅读了一些教程,对锁定协议有了一些了解,并最终了解了可串行性

我正在构建一个小框架和一个使用DAO模式的库。 我在用PHP写东西

我已经创建了一个简单的事务组件,它执行基本方法并锁定与dbms无关的行,因此我可以调用方法:

$transact = $sql->transaction();
$transact->begin();
$sql->query()
    ->select(*)
    ->from('User')
    ->where('id','=',$id)
    ->lock('exclusive')
    ->get();
$transact->commit();
我知道基于锁的协议可以在mysql中通过FOR UPDATE语句或共享模式下的锁来实现,但如何显式地为事务分配时间戳呢?或者这是没有必要的

DBMS是否自动执行此操作

我在网上查过,如果有多个事务不知道从哪里开始,就找不到任何关于如何手动实现的实用信息