如何在postgres中找到错过的表格

时间:2017-02-05 20:46:30

标签: python postgresql

我正在使用python psycopg2库在postgres数据库中创建一个表:

self.conn=pg.connect(host='localhost',user='eba',password='****',database='eba')
cur=self.conn.cursor()
cur.execute(sql)
cur.close()

sql='''CREATE TABLE public.tempimport (
id integer NOT NULL DEFAULT nextval('tempimport_id_seq'::regclass),
tablename character varying(32) COLLATE pg_catalog."default",
    index_ character varying(32) COLLATE pg_catalog."default",
    CONSTRAINT tempimport_pkey PRIMARY KEY (id)
)
WITH (

OIDS = FALSE
)
TABLESPACE pg_default;
ALTER TABLE public.tempimport
    OWNER to eba;'''

cur=self.conn.cursor()
cur.execute(sql)
cur.close()

之后,如果我跑:

cur=self.conn.cursor()
cur.execute("SELECT count(*) FROM pg_catalog.pg_tables where tablename = 'tempimport'")
x=cur.fetchall()
print x

我得到1作为答案,也就是说,表存在。

但是,如果我使用pgAdmin登录相同的数据库/ user / pwd并运行相同的SELECT COUNT(*)...句子,那么我得到0作为答案。

我在代码中创建的表格在哪里?

我怎样才能找到它的位置?

1 个答案:

答案 0 :(得分:0)

尝试使用information_schema:

SELECT * 
FROM information_schema.tables 
WHERE table_name = 'tempimport'