有一种方法可以注释列,sql中的元数据?

问题描述 投票:0回答:1
我想用元数据注释我的ddl命令,用于mutiple数据存储的sql,例如postgresql,snowflakesql ...

ex:

CREATE TABLE dummy (col_name type ... `*metadata_annotation*`, ...);
我还想强制要求每一列都有元数据注释。
稍后,我想删除这些注释,并从中创建一个映射,然后还原原始的DDL SQL命令。

EX_MAP:
表:[col_name:元数据,...] 剥离SQL:

CREATE TABLE dummy (col_name type ... , ...);

  • 我想在Antlr中更改SQL语法并通过解析树访客配置所有内容。

  • 或具有同样的正则表达式,因为没有不可及的语法可用。
SQL标准不包括存储元数据。 您可以:
sql postgresql annotations antlr4
1个回答
0
投票

在标准SQL内部,您可以分析的定义的语法注释:

CREATE TABLE dummy (col_name type ... /*@metadata_annotation*/, ...);

但是您不能保证RDBM会保留它们(例如,在
information_schema

中)。 除非您控制DDL Workflows。

使用RDBMS提供的设施
也有定义自己的命名。
postgresql中的示例:

CREATE TABLE dummy (col_name type ..., ...);

COMMENT ON COLUMN dummy.col_name IS '@metadata_annotation';

拥有您自己的元雪马

CREATE TABLE my_annotations (s text, t text, c text, comment text); INSERT INTO my_annotations VALUES ('my_schema', 'dummy', 'col_name', 'metadata_annotation');

this具有以下优势:

不取决于特定的RDBMS

您会发现一些供应商(例如Siebel)广泛使用它以避免被锁定到特定的数据库

Well有组织评论
而不是单个字符可以使无与伦比的脆弱语法
分开
在元数据作家和那些想更具人为友好的评论的人之间,您不参加一个领域的竞争。
关于谁可以撰写架构
的授权
甚至是存储程序来验证

automatization

您的所有检查(每个列都标记了吗?)可以在SQL
    中完成

© www.soinside.com 2019 - 2025. All rights reserved.