2014-11-18 3 views
0
In [50]: cur.execute('create table xyzabcd (c1 integer, c2 text)') 
Out[50]: <pgdb.pgdbCursor at 0x344ed501d0> 

Но в PSQL, если я пытаюсь \dt, я не могу увидеть таблицу. Если я скопирую вставку тот же самый запрос в psql, таблица будет создана. Тогда, если я попытаюсь выполнить выше в Python, я получаю ProgrammingError: ERROR: relation "xyzabcd" already exists.Postgresql - Невозможно создать/ВСТАВИТЬ через Pygresql

Такая же история идет со вставками. SELECT работают безупречно. Я пробовал то же самое на другом сервере Postgresql (как на RDS)

Любые подсказки, что может быть? Я подключаюсь к ним через те же учетные данные как в psql, так и в Python-pygresql.

Прежде чем кто-нибудь спросит, я не могу использовать Psycopg2 из-за проблем с лицензией.

Postgresql сервера 9.3.3, 9.3.5 PSQL, Pygresql 4.1.1

+0

Вы совершили сделку? – Wolph

+0

9.3.3 имеет очень серьезную ошибку репликации, немедленно обновите ее. –

ответ

1

Вы должны использовать метод commit() вашего DbConnection. В PostgreSQL все DDL (CREATE TABLE) находятся в транзакции. В Python DB API 2 autocommit отключен по умолчанию.

Смежные вопросы