You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何利用Pandas字典批量生成指定Schema的SQL建表语句?

解决方案

你可以通过Python遍历字典中的Schema和表名,结合字符串格式化批量生成目标SQL语句,具体实现如下:

代码实现

# 定义你的Schema-表名字典
my_dict = {
    'ETL_A': ['TABLE_001', 'TABLE_002', 'TABLE_003'],
    'TEST': ['TABLE_TEST', 'TEST001', 'SAMPLE_TEST'],
    'MY_PRIVATE_SHEMA': ['WWW_001', 'LTT_222']
}

def generate_sql_ddl(schema_table_dict, target_timestamp):
    # 定义SQL模板,确保时间戳被单引号包裹
    sql_template = "CREATE TABLE {schema}.{table} SELECT * FROM {schema}.{table} at(timestamp => '{timestamp}'::timestamp);"
    sql_list = []
    # 遍历每个Schema及其下属表
    for schema_name, table_names in schema_table_dict.items():
        for table in table_names:
            # 填充模板变量
            sql_statement = sql_template.format(
                schema=schema_name,
                table=table,
                timestamp=target_timestamp
            )
            sql_list.append(sql_statement)
    return sql_list

# 示例:生成时间戳为'10-06-26 02:31:29'的所有SQL语句
target_ts = '10-06-26 02:31:29'
all_sql = generate_sql_ddl(my_dict, target_ts)

# 输出所有生成的SQL
for stmt in all_sql:
    print(stmt)

输出示例

运行上述代码后,会生成以下SQL语句:

CREATE TABLE ETL_A.TABLE_001 SELECT * FROM ETL_A.TABLE_001 at(timestamp => '10-06-26 02:31:29'::timestamp);
CREATE TABLE ETL_A.TABLE_002 SELECT * FROM ETL_A.TABLE_002 at(timestamp => '10-06-26 02:31:29'::timestamp);
CREATE TABLE ETL_A.TABLE_003 SELECT * FROM ETL_A.TABLE_003 at(timestamp => '10-06-26 02:31:29'::timestamp);
CREATE TABLE TEST.TABLE_TEST SELECT * FROM TEST.TABLE_TEST at(timestamp => '10-06-26 02:31:29'::timestamp);
CREATE TABLE TEST.TEST001 SELECT * FROM TEST.TEST001 at(timestamp => '10-06-26 02:31:29'::timestamp);
CREATE TABLE TEST.SAMPLE_TEST SELECT * FROM TEST.SAMPLE_TEST at(timestamp => '10-06-26 02:31:29'::timestamp);
CREATE TABLE MY_PRIVATE_SHEMA.WWW_001 SELECT * FROM MY_PRIVATE_SHEMA.WWW_001 at(timestamp => '10-06-26 02:31:29'::timestamp);
CREATE TABLE MY_PRIVATE_SHEMA.LTT_222 SELECT * FROM MY_PRIVATE_SHEMA.LTT_222 at(timestamp => '10-06-26 02:31:29'::timestamp);

内容的提问来源于stack exchange,提问作者My80

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 08:30:47