0

シーケンスの次の値を取得するために、次のように記述しました。それは完全に機能します:

static int64 _get_md_key_next_serial()
{
    int                  ret = SPI_execute("SELECT nextval('md_key_seq')", true, 1);

    if (ret <= 0)
        return (int64)ret;

    if (SPI_processed)
    {
        SPITupleTable   *tuptable = SPI_tuptable;
        bool             fieldNull;
        Datum            datum = SPI_getbinval(tuptable->vals[0], tuptable->tupdesc, 1, &fieldNull);

        if (!fieldNull)
            return DatumGetInt64(datum);
    }

    return NULL_ZERO;
}

しかし、SPI を介さずに実行できる関数呼び出しは確かにありますか?

4

1 に答える 1