Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何获取AWS中存储的数据库的表关系(主键和外键)?_Mysql_Sql_Amazon Web Services_Amazon S3_Amazon Athena - Fatal编程技术网

Mysql 如何获取AWS中存储的数据库的表关系(主键和外键)?

Mysql 如何获取AWS中存储的数据库的表关系(主键和外键)?,mysql,sql,amazon-web-services,amazon-s3,amazon-athena,Mysql,Sql,Amazon Web Services,Amazon S3,Amazon Athena,我想展示存储在AmazonWeb服务中的数据库中的表之间的关系。我的数据库名是news。由此,我在Amazon SageMaker中运行了这段Python代码 from pyathena import connect import pandas as pd conn = connect(s3_staging_dir = '...', region_name = '...') query = """ SELECT * FROM IN

我想展示存储在AmazonWeb服务中的数据库中的表之间的关系。我的数据库名是
news
。由此,我在Amazon SageMaker中运行了这段Python代码

from pyathena import connect
import pandas as pd

conn = connect(s3_staging_dir = '...',
               region_name = '...')

query = """

SELECT *
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE table_schema = 'news'

"""
    
result = pd.read_sql(query, conn)
result
然后它返回一个错误

DatabaseError: Execution failed on sql: 

SELECT *
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE table_schema = 'news'


SYNTAX_ERROR: line 2:6: Table awsdatacatalog.information_schema.table_constraints does not exist
unable to rollback

能否请您详细说明如何获取表(主键和外键)之间的关系?

awsdatacatalog
中没有类似于
信息\u模式的表。表\u约束
。 而且,Amazon Athena不支持主键或外键

以下是它在创建表时支持的内容列表:


当你说“存储在Amazon Web服务中的数据库”时,你指的是什么数据库?这是一个安装在AmazonEC2实例上的数据库,还是使用AmazonRDS或其他东西?代码似乎是参考
pyathena
,所以它可能在使用Amazon Athena?你提到的这篇文章是关于MySQL的。@JohnRotenstein我正在使用亚马逊雅典娜。我认为,
pyathena
只是连接SQL的桥梁。我认为它是MySQL,因为MySQL查询中的一个成功运行于该数据库。代码似乎正在尝试连接Amazon Athena,这是一个可以查询存储在Amazon S3中的数据的服务。它仍然使用
createtable
命令来定义数据的“形状”,但您找不到定义数据库内容的传统表。您的最终目标是什么(而不是如何实现)?@JohnRotenstein我有一个包含25个表的数据库。我想看看是否有一些是通过它们的列链接在一起的。如果是这样,我将能够通过从其他链接表中提取信息来丰富表中的信息。请调查数据实际存储的位置。如果它使用的是Amazon Athena,那么就没有“将表链接在一起”(外键)的概念。当然,您可以通过列连接表,但它们在表本身中没有定义。