问题标签 [mysql-5.1]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
54 浏览

mysql - Mysql - 检测插入数据的事务

我正在尝试使用innodb引擎识别哪个事务将数据插入 db 表到Mysql 5.1服务器中。不幸的是,我无法访问源代码,因此我必须通过查看数据库上的数据来尝试猜测发生了什么。

在我看来,应该在单个事务中写入数据库的数据集被写入 2 个单独的事务中。我想测试这个假设是否正确。

为了做到这一点,我的想法是在我的表中添加一个列,比如说 TransactionID,然后使用触发器复制该列上的 transactionId 值。

但我发现在 mysql 5.1 中似乎无法检测到 innodb 引擎的 TransactionId。

您是否知道是否有其他选项来识别数据插入所涉及的事务?

0 投票
1 回答
93 浏览

mysql - MySQL 使用 OR 条件将表与自身连接起来

我有一个表 FOLDERS,定义了类似目录结构的东西。它包含以下列:ID、PARENT_ID 和 LINK_ID。

我无法更改我现在遇到问题的应用程序,查询速度很慢。

此应用程序有一个逻辑,即 PARENT_ID 可以同时引用 IDLINK_ID。

此外,我无法更改查询,我发现这会减慢整个 ETL 过程:

但是,我们可以更改数据库,删除或添加索引。

有没有机会加快这个查询?

似乎“父文件夹”上的索引不起作用(LinkID、ParentId 和 ID(这是一个主键)上有索引,并且该表已被完全扫描。其中有 200K 行。

0 投票
2 回答
147 浏览

mysql - GROUP BY 和自定义顺序

在 group by 之前通读了 MySQL order by的答案,但将其应用于我的查询最终会在子查询中出现一个子查询,这是一个相当简单的情况,所以我想知道这是否可以简化:

带有示例数据的架构

为简洁起见,我省略了members表格中的其他字段。此外,在实际应用程序中加入了更多表,但这些表很容易加入。是membership_stack桌子给了我问题。

我无法更改数据库架构,因为数据与外部数据源同步。

询问

这是我到目前为止所拥有的:

这可以按预期工作,但如果成员的“最近序列”涉及多个团队,则成员可能会出现多次。我需要做的是再次聚合id并选择每个组中的第一行。

然而,这带来了一些问题:

  1. MySQL没有函数FIRST()
  2. 这整个结果集将成为一个子表(子查询),这在这里没什么大不了的,但查询在应用程序上相当大。
  3. 它需要与ONLY_FULL_GROUP_BY 模式兼容,因为它默认在 MySQL 5.7 上启用。我没有检查过,但我怀疑这FIELD(ms.status, 'active', 'completed', 'cancelled', 'abandoned')被认为是这个结果集的功能依赖字段。该查询还需要与 MySQL 5.1 兼容,因为这是我们目前正在运行的。

目标

我能做些什么呢?

编辑:我注意到有些成员不属于任何团队。这些成员应包含在结果集中,这些字段的值为空。已更新问题以反映新信息。

0 投票
1 回答
3507 浏览

mysql - MySQL 5.1 [1305] 函数不存在

我必须向我的本地 MySQL 添加一个函数,因为它是在远程服务器上定义的,用于测试目的。

但是当我添加一个像

该函数已创建并在 ROUTINES 表中可见,但是当我尝试使用它时

我收到一个错误

这在 MySQL 5.7 上工作得非常好,但我似乎无法让它在 5.1 上工作

任何线索将不胜感激。

0 投票
0 回答
949 浏览

mysql - 无法使用 datagrip 移动数据

我使用 datagrip 将一些数据从 mysql 安装移动到另一个 postresql 数据库。

这适用于其他 3 张桌子,就像一个魅力。下一个,超过 500.000 行,无法导入。

我使用“将表格复制到...(F5)”功能。

这是日志。

16:28 已连接

16:30 user@localhost: tmp_post 导入到 forum_post: 1999 行 (1m 58s 206ms)

16:30 无法保存当前事务状态。检查连接和数据库设置,然后重试。

对于其他错误,例如错误的数据类型、非空列上的空数据,会创建一个非常有用的日志。但是不是现在。

0 投票
2 回答
49 浏览

sql - SQL 按月和以前的值求和

我有以下数据:

我想按月汇总不同活动的计数器,所以最终表格如下所示:

我试过这样做:

但它给了我奇怪的结果:

可能是什么问题?

0 投票
1 回答
39 浏览

mysql - 索引有问题

我有两张桌子:

第一的 :

第二 :

此查询执行大约 5,5 秒,但没有“order by du.num_new_msgs desc” - 需要 0,005 秒。如何提高速度?怎么了?

这里解释一下:

谢谢

0 投票
1 回答
646 浏览

innodb - Unable to delete a MySQL InnoDB table

I am using MySQL 5.1.56

I have a DB with about 70 tables and I have an issue with a particular corrupted table e.g. Table_X

When I try to access the table mysql> select * from Table_x; ERROR 1105 (HY000): Failed to read from the .par file

I am unable to add partitions to the table.

When I try to drop the table I see the below errors. mysql> drop table Table_X; ERROR 1051 (42S02): Unknown table 'Table_X'

The create query gives the error: ERROR 1050 (42S01): Table 'Table_X' already exists.

In my DB files locations, I can see the corresponding Table_X.frm, Table_X.ibd and Table_X.par files. But in addition, I also see a file '#sql-Table_X.frm' in the location.

When I check the 'Tables' table in the information_Schema DB, the Engine value is NULL for this particular table, where as it should have been InnoDb. The table seems to be corrupted somehow.

I tried the Flush-tables command,but that did not help as well. I am still unable to drop and recreate the table.

I do not wish to take a backup of this particulate table, but I need to preserve other tables of the database. Is there any way, I can just recreate this individual table without having to restore the entire Database.

0 投票
0 回答
30 浏览

mysql - 选择给定日期时间在另外两个之间的行不起作用

我遇到了仅在我们的MySQL 5.1系统上发生的问题。它在MySql 5.6.

我有一个有两DateTime列(“ start”和“ end”)的表。我想选择日期在这两列之间或相同的所有行。基本上是这样的:row.start <= MY_DATE_TIME <= row.end

但是当我执行这个...

...我还得到一行,其中 a.start 是“2019-10-10 07:40:00”,a.end 是“2019-11-20 23:55:00”。我给定的日期显然超出了该范围,所以我做错了什么?

我也这样尝试过,结果相同:

有任何想法吗?

0 投票
2 回答
215 浏览

mysql - MySQL 5.1.73 LEFT JOIN 超时

我在本地使用 mysql 5.7.28 工作,一切正常,但在 5.1.73 上的开发服务器上,我的请求超时(+ 200 万)。

请求很简单,但我不明白为什么它不起作用......

奇怪的事情,如果我交换 t1 和 t2 它工作得很好。如果我使用 INNER JOIN 它工作得很好。如果我做 :

它不工作。

t1.id 和 t2.id 有两个索引。t1.id 可以为 NULL,t2.id 不能(但在 localhost 中也是如此??)。

如果您对为什么这不起作用有任何想法,请随时帮助我:D

表格:

T1:

///////////////////

T2:

谢谢 !