Updated on 2024-08-20 GMT+08:00

CREATE RESOURCE LABEL

Description

CREATE RESOURCE LABEL is used to create a resource label.

Precautions

Only users with the POLADMIN or SYSADMIN permission, or the initial user can perform this operation.

Syntax

1
CREATE RESOURCE LABEL [IF NOT EXISTS] label_name ADD label_item_list[, ...];

  • label_item_list
    1
    resource_type(resource_path[, ...])
    

  • resource_type
    { TABLE | COLUMN | SCHEMA | VIEW | FUNCTION }

Parameters

  • IF NOT EXISTS

    If a resource label with the same name already exists, no error is generated. Instead, a message is displayed, indicating that the resource label already exists.

  • label_name

    Specifies the resource label name, which must be unique.

    Value range: a string. It must comply with the naming convention.

  • resource_type

    Specifies the type of database resources to be labeled.

    Value range: TABLE, COLUMN, SCHEMA, VIEW, and FUNCTION.

  • resource_path

    Specifies the path of database resources.

Examples

 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
42
43
44
45
46
47
48
49
50
51
-- Create table tb_for_label.
gaussdb=# CREATE TABLE tb_for_label(col1 text, col2 text, col3 text);

-- Create a resource label based on a table.
gaussdb=# CREATE RESOURCE LABEL IF NOT EXISTS table_label add TABLE(public.tb_for_label);

-- Create an existing table resource label again and compare the differences between adding IF NOT EXISTS and not adding IF NOT EXISTS.
gaussdb=# CREATE RESOURCE LABEL IF NOT EXISTS table_label add TABLE(public.tb_for_label);
NOTICE:  table_label label already defined, skipping
CREATE RESOURCE LABEL
gaussdb=# CREATE RESOURCE LABEL table_label add TABLE(public.tb_for_label);
ERROR:  table_label label already defined

-- Create a resource label based on columns.
gaussdb=# CREATE RESOURCE LABEL IF NOT EXISTS column_label add COLUMN(public.tb_for_label.col1);

-- Create schema schema_for_label.
gaussdb=# CREATE SCHEMA schema_for_label;

-- Create a resource label based on a schema.
gaussdb=# CREATE RESOURCE LABEL IF NOT EXISTS schema_label add SCHEMA(schema_for_label);

-- Create view view_for_label.
gaussdb=# CREATE VIEW view_for_label AS SELECT 1;

-- Create a resource label based on a view.
gaussdb=# CREATE RESOURCE LABEL IF NOT EXISTS view_label add VIEW(view_for_label);

-- Create function func_for_label.
gaussdb=# CREATE FUNCTION func_for_label RETURNS TEXT AS $$ SELECT col1 FROM tb_for_label; $$ LANGUAGE SQL;

-- Create a resource label based on a function.
gaussdb=# CREATE RESOURCE LABEL IF NOT EXISTS func_label add FUNCTION(func_for_label);

-- Delete the table resource label table_label.
gaussdb=# DROP RESOURCE LABEL IF EXISTS table_label; 

-- Delete the column resource label column_label.
gaussdb=# DROP RESOURCE LABEL IF EXISTS column_label;

-- Delete the function resource label func_for_label.
gaussdb=# DROP FUNCTION func_for_label;

-- Delete the view resource label view_for_label.
gaussdb=# DROP VIEW view_for_label;

-- Delete the schema resource label schema_for_label.
gaussdb=# DROP SCHEMA schema_for_label;

-- Delete the tb_for_label table.
gaussdb=# DROP TABLE tb_for_label;