我运行了一个查询,在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)
答案 0 :(得分:0)
关于 SQL 声明:
radio_parameter
的架构吗?
您的查询可以访问该架构..?从变量abc.iloc[i,1]
派生的文字的前缀为a.
或
b.
。在这种情况下,请确保从中派生的列名称
参数适用于两个别名为a
或b
的表。
或
从变量abc.iloc[i,1]
派生的文字在一个文件中没有前缀
可能导致含糊不清的地点。
\
)个字符,你确定吗?
这种用法是对的。