我一直在pandas中愉快地使用dataframe to SQL,但我遇到的问题是,我现在需要在命令之外进行自定义,并包含一条SQL语句来复制授权,因为我希望通过替换来刷新表,但我不想丢失它上的授权。
因为它是一个我无法看到底层SQL和添加grant语句的函数,所以我想知道是否有解决方法/我能做些什么。
(DF to SQL文档) https://pandas.pydata.org/pandas-docs/version/0.23.4/generated/pandas.DataFrame.to_sql.html
(Snowflake创建表格文档,其中包括作为选项的替换副本授权) https://docs.snowflake.com/en/sql-reference/sql/create-table.html
connection = engine.connect()
df.to_sql("Testtable", con=engine, index=False,chunksize=16000, if_exists='replace')发布于 2021-10-26 10:56:04
是。这将是to_sql()函数的一个非常好的特性!
我已经解决了这个问题,方法是执行一个删除表的查询,然后复制授权再次创建它。(我的例子是雪花)
之后,我使用to_sql()和if_exist='append‘。
所以就像这样:
sql = """
create or replace table "ANALYTICS"."PUBLIC"."TEST" COPY GRANTS (
COUNTRY VARCHAR(16777216),
DEBT FLOAT,
POPULATION FLOAT
)
"""
conn.execute(sql)
test.to_sql("test", con=conn, if_exists='append', index=False, method=pd_writer)因此,例如,如果您在数据帧中添加或删除列,则必须更改查询以匹配您试图推送到数据库的新表。如果有一个选项,比如if_exists='replace_copy_grants‘,那会更好。
https://stackoverflow.com/questions/66975115
复制相似问题