MSSQL から MySQL に移行しようとしています。この Stored Proc は、永続テーブルからいくつかの列の一時テーブルを作成し、カーソルを使用して各レコードの RandNum 列を乱数で更新し、データセットを選択します。これを書いているとき、カーソルをバイパスできると思ったのですが...
SELECT Id, Title, DateStart, Rand() FROM cms_News;
しかし、今はDBを変換しようとしているだけなので、あまり劇的に変更したくありません。後で戻って、これを最適化します。SP は次のとおりです:編集:この例から、エラーとは関係のないすべてのコードを削除しました。また、今日これをオンラインで見ましたが、この問題を抱えているのは私だけではないようです。MySQL は私のカーソル宣言の構文を好みません。何か案は?
DELIMITER ;//
DROP PROCEDURE IF EXISTS `cms_NewsSelectMainPageNews`;//
CREATE PROCEDURE `cms_NewsSelectMainPageNews`
()
BEGIN
CREATE TEMPORARY TABLE tempNews
(
Id int NOT NULL,
Title nvarchar(250),
DateStart datetime,
RandNum float NULL
);
DECLARE Randomizer CURSOR
FOR SELECT Id FROM tempNews;
END;//