在商店过程中使用current_timestamp +0作为变量

时间:2012-11-09 17:26:50

标签: mysql stored-procedures

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

你有什么想法吗?

1 个答案:

答案 0 :(得分:2)

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