psycopg2在哪里创建表?

时间:2017-11-28 10:12:39

标签: python-3.x postgresql psycopg2

我在python 3.x中使用psycopg2库在数据库中创建表。当我访问数据库时,我可以找不到表。注意:我使用的是postgresql数据库。

我在这里创建表格:

# 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 个答案:

答案 0 :(得分:1)

我使用的是python 3.6.x和psycopg2。

我用python代码创建表。

注意conn.commit()

    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()