MySQL プロシージャで current_timestamp+0 を変数に設定し、この変数をクエリで使用したいと考えています。
編集: 手順全体で同じ値を維持するには、@P_version が必要です。最初に現在のタイムスタンプを取得し、この値をすべてのクエリで使用したいと思います。
私は試した:
BEGIN
DECLARE P_version float;
SET P_version = current_timestamp +0;
insert INTO reports_4.Items(id, version, itype)
Select I.id, P_version, I.itype from Items where I.live = 1;
.....
END;
と:
BEGIN
BEGIN
SET @P_version = 'select current_timestamp +0 from dual';
PREPARE query from @P_version;
EXECUTE query;
DEALLOCATE prepare query;
END;
insert INTO reports_4.Items(id, version, itype)
Select I.id, P_version, I.itype from Items where I.live = 1;
.....
END;
以下を使用すると、プロシージャを 2 回目に呼び出すと、@P_version の値は最初にプロシージャを実行したときと同じ値になります。
BEGIN
select @P_version = current_timestamp +0 from dual;
insert INTO reports_4.Items(id, version, itype)
Select I.id, @P_version, I.itype from Items where I.live = 1;
.....
END;
アイデアはありますか?