ВНУТРЕННЕЕ СОЕДИНЕНИЕ две временные таблицы не отвечают в postgresql usibn python - PullRequest
0 голосов
/ 31 мая 2018

Я запустил запрос, который соединяет две временные таблицы в postgresql, используя python, чтобы найти другой радиопараметр.Также у меня есть CSV-файл, который увеличил имя таблицы и имя столбца.Я использую pandas для чтения csv и несколько раз запрашиваю postgreqsql и вставляю результат в вызов cellcellation.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')

Для устранения неполадок я напечатал запрос при выполнении один раз.Но я обнаружил, что запрос не отвечает и не обнаруживается ошибка, если я внутренне соединяю две временные таблицы.

Есть ли у кого-нибудь такой опыт при выполнении запроса, на который нет ответа, но нет ошибки?Проблема связана с проблемой загрузки сервера или базы данных (моя база данных составляет около 24 ГБ)

1 Ответ

0 голосов
/ 31 мая 2018

Об операторе SQL :

  • Прежде всего, у вас есть схема с именем radio_parameter и имеет ли ваш запрос доступ к этой схеме ..?
  • литерал, полученный из переменной abc.iloc[i,1], имеет префиксы a. или b..В этом случае убедитесь, что имя столбца, полученное из этого параметра, подходит для обеих таблиц с псевдонимом a или b.

    ИЛИ

    литерал, полученный из переменнойabc.iloc[i,1] не имеет префикса в одном месте, что может привести к неоднозначности.

  • некоторые символы обратной косой черты (\) отображаются в SQL , вы уверены, что использование является правильным.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...