云数据库 GAUSSDB-CREATE SYNONYM:示例

时间:2024-11-13 14:46:51

示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
--创建模式ot。
gaussdb=# CREATE SCHEMA ot;

--创建表ot.test_tbl1。
gaussdb=# CREATE TABLE ot.test_tbl1(c1 INT, c2 INT);
gaussdb=# INSERT INTO ot.test_tbl1 values(1,1);

--查看当前search_path。
gaussdb=# SHOW search_path;
  search_path   
----------------
 "$user",public
(1 row)

--因为当前search_path中不包含ot,并且当前用户不是ot,所以直接查看表名会报错。
gaussdb=# SELECT * FROM test_tbl1;
ERROR:  relation "test_tbl1" does not exist
LINE 1: SELECT * FROM test_tbl1;
                      ^
--创建同义词。
gaussdb=# CREATE OR REPLACE SYNONYM test_tbl1 FOR ot.test_tbl1;

--使用同义词。
gaussdb=# SELECT * FROM test_tbl1;
 c1 | c2 
----+----
  1 |  1
(1 row)
gaussdb=# INSERT INTO test_tbl1 VALUES (2,2);

--查询已经创建的同义词。
gaussdb=# SELECT synname,synobjschema,synobjname FROM pg_synonym WHERE synname = 'test_tbl1';
  synname  | synobjschema | synobjname 
-----------+--------------+------------
 test_tbl1 | ot           | test_tbl1
(1 row)

--删除。
gaussdb=# DROP SYNONYM test_tbl1;
gaussdb=# DROP TABLE ot.test_tbl1;
gaussdb=# DROP SCHEMA ot CASCADE;
support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0566.html