keyshen 2020-10-26 10:39 采纳率: 80%
浏览 94
已采纳

关于python使用postgreSQL问题

1.本人新手,今日练习python连接postgre数据库中,发现以下问题

# coding = utf-8
import psycopg2

conn = psycopg2.connect(database="School", user="postgres", password="aaaaaa", host="127.0.0.1", port="5432",
                        )

print("Opened database successfully")

cur = conn.cursor()
cur.execute("SELECT 课程号, 课程名称, 教师号  from Course")
rows = cur.fetchall()
for row in rows:
    print("课程号 = ", row[0])
    print("课程名称 = ", row[1])
    print("教师号 = ", row[2])

print("Operation done successfully")
conn.close()

之后出现错误

Traceback (most recent call last):
  File "C:/Users/Administrator.DESKTOP-02S6LKD/PycharmProjects/pythonProject/HelloWorld.py", line 10, in <module>
    cur.execute("SELECT 课程号, 课程名称, 教师号  from Course")
psycopg2.errors.UndefinedTable: relation "course" does not exist
LINE 1: SELECT 课程号, 课程名称, 教师号  from Course
                                              ^

数据库如下:
图片说明

这个很头痛,后来新建一个库,设置列表名全是英文又可以读取,是不是不能识别中文?

  • 写回答

1条回答 默认 最新

  • 后端工匠之道 2020-10-26 18:01
    关注

    首先不建议使用中文命名表字段,或者表名称。其次postgres是严格区分大小写和中文的,sql语句中记得为大写英文及文字字段带入双引,如
    INSERT INTO "public"."name_age"("姓名", "id", "年龄") VALUES ('张三', 1, '13');

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 像这种代码要怎么跑起来?
  • ¥15 怎么改成循环输入删除(语言-c语言)
  • ¥15 安卓C读取/dev/fastpipe屏幕像素数据
  • ¥15 pyqt5tools安装失败
  • ¥15 mmdetection
  • ¥15 nginx代理报502的错误
  • ¥100 当AWR1843发送完设置的固定帧后,如何使其再发送第一次的帧
  • ¥15 图示五个参数的模型校正是用什么方法做出来的。如何建立其他模型
  • ¥100 描述一下元器件的基本功能,pcba板的基本原理
  • ¥15 STM32无法向设备写入固件