下一个问题是数据库查询发送
psycopg2.errors.UndefinedColumn: column "crossroad_id" of relation "api_accidents" does not exist
LINE 1: INSERT INTO api_accidents ("crossroad_id", "datetime_start",...
思前想后,我发现错误是由于引用。在
我有一个用于数据库查询的基类和一些子类,它们对不同的表进行查询。其他的儿童班不间断地工作。下面列出了向数据库发送查询的函数。在
^{pr2}$在子方法中,我只更改了字段col_names
和{
query = """INSERT INTO api_accidents ({}) VALUES ({})"""
col_names = ['crossroad_id', 'datetime_start', 'datetime_stop']
这里的原始查询工作
INSERT INTO api_accidents (сrossroad_id, datetime_start, datetime_stop)
VALUES (1, current_timestamp, NULL)
但这个不管用
INSERT INTO api_accidents ("сrossroad_id", "datetime_start", "datetime_stop")
VALUES (1, current_timestamp, NULL)
但是标准的sql.SQL
格式进行第二次查询。在
不在查询中手动写入列名就可以解决这个问题吗?在
更新
我又检查了一遍,发现它不依赖于引号。无论是否使用引号,此查询都有效:
INSERT INTO api_accidents (сrossroad_id, datetime_start, datetime_stop)
VALUES (1, current_timestamp, NULL);
这个根本不管用:
INSERT INTO api_accidents (crossroad_id, datetime_start, datetime_stop)
VALUES (1, current_timestamp, NULL);
是的,它们完全一样。但博士后不这么认为。在
更新2
最后我发现,当我从information_schema.columns
复制列名时,它是有效的。但当我自己输入那个专栏的名字时,它就不起作用了。这取决于什么-我不知道。在
结果,第二个开发人员在创建表时,在列
crossroad_id
上写了西里尔文c
,而不是拉丁语。。。在通过更改列名修复。在
相关问题 更多 >
编程相关推荐