首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dataframe to SQL Pandas,也称为Copy Grants

问Dataframe to SQL Pandas,也称为Copy Grants
EN

Stack Overflow用户
提问于 2021-04-07 03:15:42
回答 1查看 60关注 0票数 1

我一直在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

代码语言:javascript
复制
connection = engine.connect()


df.to_sql("Testtable", con=engine, index=False,chunksize=16000, if_exists='replace')
EN

回答 1

Stack Overflow用户

发布于 2021-10-26 10:56:04

是。这将是to_sql()函数的一个非常好的特性!

我已经解决了这个问题,方法是执行一个删除表的查询,然后复制授权再次创建它。(我的例子是雪花)

之后,我使用to_sql()和if_exist='append‘。

所以就像这样:

代码语言:javascript
复制
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‘,那会更好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66975115

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档