【问题标题】:How to create a sequence in dbt with postgres?如何使用 postgres 在 dbt 中创建序列?
【发布时间】:2022-08-19 23:58:17
【问题描述】:

我想知道如何使用 dbt (v1.0) 和 postgres 创建一个序列? 例如,如果您尝试直接在 dbt 模型 my_model.sql 中创建序列:

-- my_model.sql
CREATE SEQUENCE IF NOT EXISTS my_schema.my_column;

-- ... your model logic here

SELECT
    *
FROM
    FINAL

然后运行dbt run --select my_model,您将遇到以下错误:

Postgres adapter: Postgres error: syntax error at or near \"CREATE\"
LINE 16: CREATE SEQUENCE IF NOT EXISTS
...
syntax error at or near \"CREATE\"
CREATE SEQUENCE IF NOT EXISTS

    标签: postgresql dbt


    【解决方案1】:

    您可以使用run_query dbt jinja 函数和set 来使用dbt 运行SQL:

    -- my_model.sql
    {% set create_sequence_query %}
    CREATE SEQUENCE IF NOT EXISTS my_schema.my_sequence;
    {% endset %}
    {% set results = run_query(create_sequence_query) %}
    
    -- ... your model logic here
    
    SELECT
        *
    FROM
        FINAL
    
    

    【讨论】:

      猜你喜欢
      • 2023-02-20
      • 2011-01-17
      • 2022-10-14
      • 1970-01-01
      • 2018-03-17
      • 2015-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多