INNER JOIN两个临时表在postgresql usibn python中没有响应

时间:2018-05-31 04:24:49

标签: python sql postgresql python-2.7

我运行了一个查询,在postgresql中使用python内部连接两个临时表来查找不同的无线电参数。另外我有csv文件,它增加了表名和列名。我使用pandas读取csv并多次查询postgreqsql并将结果插入到单元调用comparsion.cccheck_table_cell中。

这是我的代码:

from ftplib import FTP
import os
import csv
import psycopg2
import time
from datetime import datetime, timedelta
import pandas as pd


today=datetime.strftime(datetime.now(), '%Y-%m-%d')
yesterday=datetime.strftime(datetime.now() - timedelta(2), '%Y- 
%m-%d')
i=0
abc=[]
conn = psycopg2.connect(
    host="xxx", 
    database="parameter",
    user="xxx",
    password="xxx",
    port="xxx"
)
abc =pd.read_csv(
    'xxxx/create_comp/164/cell_table.csv',
    header=None, index_col=False
)
table="insert into comparsion.cccheck_table_cell SELECT a.date as 
date,a.ne_name as ne_name,a.local_cell_id,'"+abc.iloc[i,1]+"' as 
parameter,a." + abc.iloc[i,1] + " as today_parameter,\
b." + abc.iloc[i,1] + " as yesterday_parameter FROM (select * from 
radio_parameter." + abc.iloc[i,0] + " \
where date='" + today + "')a INNER JOIN (select * from 
radio_parameter." + abc.iloc[i,0] + " where date='" + yesterday +
"')b ON a.ne_name = b.ne_name and a.local_cell_id=b.local_cell_id WHERE 
a." + abc.iloc[i,1] + " != b." + abc.iloc[i,1] + ";"
print(table)

cursor = conn.cursor()
cursor.execute(table)


cursor.close()
conn.commit()
conn.close()
print('done_1')

要进行故障排除,我会在执行一次时打印查询。但我发现查询没有响应,如果我内部加入两个临时表,则没有发现错误。

在执行没有响应但没有错误的查询时,是否有人有这些经验?问题与服务器或数据库加载有关吗?(我的数据库大约是24GB)

1 个答案:

答案 0 :(得分:0)

关于 SQL 声明:

  • 首先,你有一个名为radio_parameter的架构吗? 您的查询可以访问该架构..?
  • 从变量abc.iloc[i,1]派生的文字的前缀为a.b.。在这种情况下,请确保从中派生的列名称 参数适用于两个别名为ab的表。

    从变量abc.iloc[i,1]派生的文字在一个文件中没有前缀 可能导致含糊不清的地点。

  • SQL 中看到一些反斜杠(\)个字符,你确定吗? 这种用法是对的。