gpt4 book ai didi

php - MySQL 无法选择插入到不同 session 中的行

转载 作者:行者123 更新时间:2023-11-29 05:14:08 25 4
gpt4 key购买 nike

我的问题在标题中。

我在一个应用程序中打开一个 MySQL session ,该应用程序调用一个脚本来创建另一个 session 。我在那个新 session 中插入了一条记录,但是当我在上一个 session 中选择时,我看不到插入的行。

插入查询如下:

INSERT INTO VCS.project_files (track_nbr, path, filename)
VALUES ('$track_nbr', '$path', '$filename');

下面是选择:

SELECT pf.project_file_id, pf.track_nbr, pf.filename, pf.path, pf.status
FROM VCS.project_files pf;

最佳答案

我发现这是由于隔离级别设置为“可重复读取”。 “可重复读取”的意思正是它所说的,旧 session 中的每次读取都将获得完全相同的行

为了解决这个问题,我必须通过执行以下操作将数据库设置为“读取已提交”:

  1. 将以下行添加到 /etc/my.cnf (Ubuntu) /etc/my.cnf.d/my.cnf (CentOS):

    [mysqld]
    binlog_format = row
    transaction-isolation = READ-COMMITTED
  2. 重新启动 MySQL(在 Ubuntu 中):

    sudo service mysql restart

这允许所有 session 看到来自其他 session 的已提交更改。

我习惯了 Oracle 数据库(默认为“已提交读取”),而 MySQL 则不同(默认为“可重复读取”)。

关于php - MySQL 无法选择插入到不同 session 中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35470745/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com