我是 Postgresql 的新手,我正在尝试从 MySQL 迁移我的应用程序。
我有一个具有以下结构的表:
                            Table "public.tbl_point"
          Column         |         Type          | Modifiers | Storage  | Description
 ------------------------+-----------------------+-----------+----------+-------------
  Tag_Id                 | integer               | not null  | plain    |
  Tag_Name               | character varying(30) | not null  | extended |
  Quality                | integer               | not null  | plain    |
  Execute                | integer               | not null  | plain    |
  Output_Index           | integer               | not null  | plain    |
  Last_Update            | abstime               |           | plain    |
Indexes:
"tbl_point_pkey" PRIMARY KEY, btree ("Tag_Id")
Triggers:
add_current_date_to_tbl_point BEFORE UPDATE ON tbl_point FOR EACH ROW EXECUTE PROCEDURE update_tbl_point()
Has OIDs: no
当我使用 libpq 通过 C 程序运行查询时:
UPDATE tbl_point SET "Execute"=0 WHERE "Tag_Id"=0
我得到以下输出:
ERROR:  record "new" has no field "last_update"
CONTEXT:  PL/pgSQL function "update_tbl_point" line 3 at assignment
当我尝试使用 pgAdminIII 更改“执行”或任何其他列的值时,我得到完全相同的错误。
如果我将列名从“Last_Update”更改为“last_update”,一切正常。
我在数据库中的其他表中发现了同样的问题,并且该列始终与 abstime 或 timestamp 列一起出现。