Ste*_*Luo 5 postgresql pgadmin
背景
有一列名为alias的类型character varying[](64)。在使用之前,已经在某些行上设置了值psycopg2。那时一切都很好。
SQL = 'UPDATE public."mytable" SET alias=%s WHERE id=%s'
query = cursor.mogrify(SQL, ([values] , id))
cursor.execute(query)
conn.commit()
Run Code Online (Sandbox Code Playgroud)
最近,当我想使用pgAdmin GUI来增加更多值时,如第一个图所示,第二个图出现了错误,它说参数格式不能混合:
好吧,事实证明,如果在pgAdmin中使用诸如psql或查询工具之类的脚本插入值,则不会发生错误,即仅在使用pgAdmin的GUI时才会发生错误。
示例脚本:
UPDATE public."mytable" SET alias='{a, b}' WHERE id='myid'
Run Code Online (Sandbox Code Playgroud)
但是由于GUI修改值要容易得多,所以真的想弄清楚它。任何的想法?
这是 pgAdmin 4.17 中的一个错误。
看起来每当您编辑表格中的achar(n)[]或varchar(n)[]单元格时都会发生这种情况(尽管char[]并且varchar[]不受影响)。
它应该在 4.18 中修复。
同时,您可以自己修复它,不会有太多麻烦。pgAdmin4 后端是用 Python 编写的,所以不需要重建任何东西;你可以潜入并改变来源。
找到安装 pgAdmin4 的目录,并web/pgadmin/tools/sqleditor/__init__.py在编辑器中打开。找到这一行:
typname = '%s(%s)[]'.format(
Run Code Online (Sandbox Code Playgroud)
...并将其更改为:
typname = '{}({})[]'.format(
Run Code Online (Sandbox Code Playgroud)
您需要重新启动 pgAdmin4 服务才能使更改生效。
| 归档时间: |
|
| 查看次数: |
392 次 |
| 最近记录: |