从information\u schema sqlalchemy core获取信息

2024-09-27 21:30:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下要求:

SELECT
    tc.constraint_name, tc.table_name, kcu.column_name,
    ccu.table_name AS foreign_table_name,
    ccu.column_name AS foreign_column_name
FROM
    information_schema.table_constraints AS tc
    JOIN information_schema.key_column_usage AS kcu
      ON tc.constraint_name = kcu.constraint_name
    JOIN information_schema.constraint_column_usage AS ccu
      ON ccu.constraint_name = tc.constraint_name
WHERE constraint_type = 'FOREIGN KEY' AND ccu.table_name = 'myTable'

当我在psql或datagrip中查询时,它返回了结果。当我使用sqlalchemy时,它不会给我任何东西(ResultProxy的行数为0)。这是某种限制吗

使用sqlalchemy进行请求:

db_engine = create_engine('postgresql://user:password@host:5432/myDb')
con = db_engine.connect()
req = '''SELECT
        tc.constraint_name, tc.table_name, kcu.column_name,
        ccu.table_name AS foreign_table_name,
        ccu.column_name AS foreign_column_name
    FROM
        information_schema.table_constraints AS tc
        JOIN information_schema.key_column_usage AS kcu
          ON tc.constraint_name = kcu.constraint_name
        JOIN information_schema.constraint_column_usage AS ccu
          ON ccu.constraint_name = tc.constraint_name
    WHERE constraint_type = 'FOREIGN KEY' AND ccu.table_name = 'myTable' '''
con.execute(req)
// 0 result :-(

Tags: nameinformationonschemaastableusagecolumn

热门问题