我无法删除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?
答案 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;)。