1

在 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;

如果我使用以下内容,当我第二次调用我的过程时,@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;

你有想法吗?

4

1 回答 1

2

set @p = now();? 对于这种事情,mysql 不需要从 dual 中进行选择。

于 2012-11-09T17:29:09.387 回答