PostgreSQL:无法删除名为" user"的特定表。

时间:2016-08-29 20:09:01

标签: python sql postgresql psycopg2

我无法删除PostgreSQL数据库中的特定表。该表名为" user"。当我尝试运行下面的代码片段时,

    import psycopg2
    conn = psycopg2.connect("dbname='mydatabase' user='postgres' host='localhost' password='mypassword'")
    cur = conn.cursor()
    cur.execute("DROP TABLE user;")  
    conn.commit()
    conn.close()

它吐出以下错误

  Traceback (most recent call last):
    File "dev_psycog.py", line 20, in <module>
       cur.execute("DROP TABLE user;")  
  psycopg2.ProgrammingError: syntax error at or near "user"
  LINE 1: DROP TABLE user;

我可以删除数据库中的任何其他表格,但我似乎无法删除名为&#34; user&#34;的表格。是因为&#34;用户&#34;是reserved keyword

1 个答案:

答案 0 :(得分:4)

引用&#34;用户&#34;如下

import psycopg2
conn = psycopg2.connect("dbname='mydatabase' user='postgres' host='localhost' password='mypassword'")
cur = conn.cursor()
cur.execute('DROP TABLE "user";')  
conn.commit()
conn.close()

请参阅here

  

还有第二种标识符:分隔标识符或   引用标识符。它是通过包围任意序列形成的   双引号中的字符(&#34;)。