创建 table 时出现 psycopg2 编程错误

psycopg2 programming error while creating table

在 Python2.7 脚本中,以下给了我一个错误,我不明白为什么:

import psycopg2
conn = psycopg2.connect("dbname=mydb user=username password=password")
curs = conn.cursor()
curs.execute("CREATE TABLE newtable;")

错误看起来像:

Traceback (most recent call last):

  File "<ipython-input-17-f4ba0186c40c>", line 1, in <module>
    curs.execute("CREATE TABLE newtable;")

ProgrammingError: syntax error at or near ";"
LINE 1: CREATE TABLE newtable;

另一方面,任何SELECT语句都可以很好地工作。例如:

curs.execute("SELECT * FROM table1 LIMIT 0;")

很有魅力。

CREATE TABLE newtable; 不是创建新 table 的正确语法。您需要定义一些列。

CREATE TABLE newtable (
    foo INTEGER,
    bar TEXT
);

有关详细信息,请参阅 the CREATE TABLE docs