1. 程式人生 > >PostgreSQL為表或檢視建立備註

PostgreSQL為表或檢視建立備註

1 為表和列建立備註

drop table if exists test;
create table test(
    objectid serial not null,
    num integer not null,
	constraint pk_test_objectid primary key (objectid),
	constraint ck_test_num check(num < 123 ),
);
comment on table test is '我是表';
comment on column test.objectid is '我是唯一主鍵';
comment
on column test.num is '數量欄位'; comment on constraint pk_test_objectid on test is '我是約束,唯一主鍵'; comment on constraint ck_test_num on test is '我是約束,num欄位必須小於123'; \dS+ test;

2 為檢視和列建立備註

drop view if exists vtest;
create or replace view vtest
	as	select 1 as col1, 'a' as col2, now() as col3;
comment
on view vtest is '檢視備註'; comment on column vtest.col1 is '第一列備註,integer型別'; comment on column vtest.col2 is '第二列備註,字元型別'; comment on column vtest.col3 is '第三列備註,日期時間型別';

3 comment語法

COMMENT ON
{
  ACCESS METHOD object_name |
  AGGREGATE aggregate_name ( aggregate_signature ) |
  CAST (source_type AS
target_type) | COLLATION object_name | COLUMN relation_name.column_name | CONSTRAINT constraint_name ON table_name | CONSTRAINT constraint_name ON DOMAIN domain_name | CONVERSION object_name | DATABASE object_name | DOMAIN object_name | EXTENSION object_name | EVENT TRIGGER object_name | FOREIGN DATA WRAPPER object_name | FOREIGN TABLE object_name | FUNCTION function_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] | INDEX object_name | LARGE OBJECT large_object_oid | MATERIALIZED VIEW object_name | OPERATOR operator_name (left_type, right_type) | OPERATOR CLASS object_name USING index_method | OPERATOR FAMILY object_name USING index_method | POLICY policy_name ON table_name | [ PROCEDURAL ] LANGUAGE object_name | PUBLICATION object_name | ROLE object_name | RULE rule_name ON table_name | SCHEMA object_name | SEQUENCE object_name | SERVER object_name | STATISTICS object_name | SUBSCRIPTION object_name | TABLE object_name | TABLESPACE object_name | TEXT SEARCH CONFIGURATION object_name | TEXT SEARCH DICTIONARY object_name | TEXT SEARCH PARSER object_name | TEXT SEARCH TEMPLATE object_name | TRANSFORM FOR type_name LANGUAGE lang_name | TRIGGER trigger_name ON table_name | TYPE object_name | VIEW object_name } IS 'text' where aggregate_signature is: * | [ argmode ] [ argname ] argtype [ , ... ] | [ [ argmode ] [ argname ] argtype [ , ... ] ] ORDER BY [ argmode ] [ argname ] argtype [ , ... ]

注意:SQL 標準中沒有COMMENT命令。