小编mas*_*ize的帖子

Mysql Cursor 未按正确顺序排序结果

这是我原始代码的抽象,因为你们更容易阅读。

我是 Mysql 存储过程和游标的新手。

发生的事情是,当我在查询上设置 ORDER BY 指令时,Cursor 没有正确排序结果。

这是用于重现问题的表的所有结构和数据。

日志表:

    DROP TABLE IF EXISTS `log`;
    CREATE TABLE `log` (
      `key` text NOT NULL,
      `value` text NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Run Code Online (Sandbox Code Playgroud)

测试表:

    DROP TABLE IF EXISTS `test1`;
    CREATE TABLE `test1` (
      `ID` bigint(8) unsigned NOT NULL AUTO_INCREMENT,
      `price` float(16,8) NOT NULL,
      PRIMARY KEY (`ID`),
      KEY `price` (`price`)
    ) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=latin1;
Run Code Online (Sandbox Code Playgroud)

测试表数据:

    INSERT INTO `test1` (`price`)
    VALUES (100),(200),(300),(400),(300),(200),(100);
Run Code Online (Sandbox Code Playgroud)

询问:

    SELECT *
    FROM `test1`
    ORDER BY price DESC;
Run Code Online (Sandbox Code Playgroud)

预期结果可以直接用于查询: …

mysql stored-procedures sql-order-by cursor

4
推荐指数
1
解决办法
2127
查看次数

手动释放Postgres LOCK

我想知道是否有任何命令来解锁或释放由同一事务发出的锁.

伪代码

FUNCTION
    TRANSACTION
        LOOP
            TABLE LOCK
            table operations...
            "TABLE UNLOCK WANTED"
        END
    END OF TRANSACTION
END OF FUNCTION
Run Code Online (Sandbox Code Playgroud)

函数查询可能需要一段时间,因为LOOP可能很大,所以我希望能够在事务完成之前解锁.

postgresql locking transactions

2
推荐指数
1
解决办法
4858
查看次数