pg-sql-error.md
... ...
@@ -30,3 +30,30 @@ SELECT * FROM your_table WHERE id = '123';
30 30
31 31
```
32 32
33
+## 2. ERROR: column "t" of relation "tenant_user_instance" does not exist
34
+
35
+PostgreSQL UPDATE 语句中,更新列名时不能带别名.
36
+请注意,在 PostgreSQL 中,虽然可以在 UPDATE 语句中为表指定别名,但在实际使用这些列名时,并不需要(也不应该)通过别名来引用它们. 条件可以带别名,但是列名不能带别名.
37
+```sql
38
+UPDATE tenant_user_instance t
39
+SET t."update_date" = TO_TIMESTAMP('2025-02-18 11:00:27.296', 'YYYY-MM-DD HH24:MI:SS.FF')
40
+WHERE t."action_dimension_id" = '04me8wsxbgrqt'
41
+AND t."user_id" = '04me9sszlk54b'
42
+AND t."instance_id" = '04me86gy87lxe'
43
+AND t."source" IN ('USER', 'BUSINESS_APP');
44
+```
45
+
46
+错误 [42703]: ERROR: column "t" of relation "tenant_user_instance" does not exist 表示在 tenant_user_instance 表中找不到名为 "t" 的列。实际上,这个错误通常是由表别名的误用引起的。在 PostgreSQL 中,更新语句可以使用表别名,但不需要像在 SELECT 语句中那样引用别名作为表名的一部分。
47
+
48
+以下是修正后的 SQL 语句,移除了对别名 "t" 的不正确引用:
49
+```sql
50
+
51
+UPDATE tenant_user_instance t
52
+SET update_date = TO_TIMESTAMP('2025-02-18 11:00:27.296', 'YYYY-MM-DD HH24:MI:SS.FF')
53
+WHERE t.action_dimension_id = '04me8wsxbgrqt'
54
+AND t.user_id = '04me9sszlk54b'
55
+AND t.instance_id = '04me86gy87lxe'
56
+AND t.source IN ('USER', 'BUSINESS_APP');
57
+```
58
+
59
+