如果我TRUNCATE
在一个表上启动 a ,INSERT
对那个表执行的 s 会发生什么?他们是排队直到TRUNCATE
完成,还是只是被丢弃?我知道这种情况非常罕见,但这是可能的。
我在 MySQL 中使用 PDO 事务,但是TRUNCATE
在事务之后我必须对表进行操作。我不想DELETE
在事务中使用,因为它比TRUNCATE
. 这是针对网站上的统计记录器的,因此可以轻松地对同一个表进行并发请求。
执行的查询是(来自查询日志):
SHOW PROCESSLIST
SELECT COUNT(*) AS Counter FROM stats_current
START TRANSACTION
LOCK TABLES stats_current WRITE, stats WRITE
UNLOCK TABLES
LOCK TABLES stats_customer_current WRITE, stats_customer WRITE
UNLOCK TABLES
LOCK TABLES stats_update_queue WRITE, stats_customer_current WRITE, stats_customer WRITE
UNLOCK TABLES
TRUNCATE stats_update_queue
commit