2017-11-28 6 views
0

파이썬 3.x에서 psycopg2 라이브러리를 사용하여 데이터베이스에 테이블을 만듭니다. 그러나 데이터베이스에 액세스 할 때 테이블을 찾을 수 없습니다. 참고 : postgresql 데이터베이스를 사용하고 있습니다.psycopg2 테이블은 어디에 생성됩니까?

나는 데이터베이스에 로그인하고 작성하는 경우
# Accessing database 
database = psycopg2.connect(database = "db_name", user="db_user", password="db_password", host="db_host", port="5432") 

# Creating a cursor 
dbcur = database.cursor() 

# Creating a table 
dbcur.execute("""create table test (var1 varchar);"") 

"\ dt가"이 테이블을 표시하지 않습니다

는 여기에 테이블을 만들 수 있습니다.

데이터베이스에 로그인하고 쿼리를 직접 실행하면 테이블이 만들어지고 "\ dt"를 사용하여 표시 할 수 있습니다.

어디서 잘못 될까요?

+1

두 가지가 마음에 와서 그 conn.commit()을 조심? (2) 거래를 위탁 했습니까? –

답변

1

저는 파이썬 3.6.x와 psycopg2를 사용합니다.

파이썬 코드로 표를 만듭니다. (1) 당신이 바로 데이터베이스 (\ c``) 연결 않았다

def createPlayerTable(): 
     conn = None 
     try: 
      conn = psycopg2.connect("dbname='mydatabase' user='myuser' host='localhost' port='5432' password='password'") 
      cur = conn.cursor() 
      sql = """ 
    CREATE TABLE player (
     Date DATE,   --01 
     Num int,    --02 
     Nat VARCHAR(30),  --03 
     Player VARCHAR(30), --04 
     PlayerID BIGINT,  --05 
     Spacial VARCHAR(30), --06 
     st VARCHAR(10),  --07 Status Yellow, Red 
     Age VARCHAR(10),  --08 
     Since VARCHAR(30), --09 
     TSI BIGINT,   --10 
     LS INT,    --11 
     XP INT,    --12 
     Fo INT,    --13 
     Stm INT,    --14 
     Lo INT,    --15 
     MB boolean,   --16 
     KP INT,    --17 
     DF INT,    --18 
     PM INT,    --19 
     WI INT,    --20 
     PS INT,    --21 
     SC INT,    --22 
     SP INT,    --23 
     con BIGINT,   --24 Psico 
     Last DATE,   --25 
     RT NUMERIC(2, 1), --26 Rating 
     Po VARCHAR(5),  --27 Position 
     Wage BIGINT,   --28 
     G INT,    --29 
     --TC VARCHAR(1),  -- 
     --PH VARCHAR(1),  -- 
     KP_P NUMERIC(4, 2), --30 KP Position 
     WB_P NUMERIC(4, 2), --31 WB Position 
     CD_P NUMERIC(4, 2), --32 CD Position 
     W_P NUMERIC(4, 2), --33 W Position 
     IM_P NUMERIC(4, 2), --34 IM Position 
     FW_P NUMERIC(4, 2) --35 FW Position 
    ) ; """ 
      cur.execute(sql) 
      conn.commit() 
     except(Exception, psycopg2.DatabaseError) as error: 
      print(error) 
     finally: 
      if conn is not None: 
       conn.close() 
+0

감사합니다. conn.commit()을 놓쳤습니다. –