aareon-france/sql-attributes-parser

此包的最新版本(1.0.1)没有可用的许可信息。

SQL属性解析器,提供在SQL查询上添加元数据的功能。

1.0.1 2024-05-16 11:54 UTC

This package is auto-updated.

Last update: 2024-09-16 12:44:18 UTC


README


Logo of the project SqlAttributeParser

此存储库提供了一种解析 SQL属性 的方法,该功能提供在SQL查询上添加元数据的能力。

目录

SQL属性语法

此解析器允许您将任何SQL语句或表达式附加的SQL属性解析为SQL查询。SQL属性是不官方的方式,在SQL语句和表达式中添加一些元数据,以便应用特定的行为或自动化过程,这些行为或过程与附加属性的SQL查询相关。这样,它们就像PHP属性一样。

示例

属性适用于语句

#[StatementAttribute]
CREATE TABLE `myTable`…

它们也适用于表达式

SELECT
    #[ExprAttribute]
    `myField`
FROM `myTable`;

属性可以拥有参数来改变这些属性的处理器可能具有的特定行为

#[Since(version: 8.0.5, dbms_list: 'mysql,pgsql,oracle')]

参数必须是命名的,并且它们的值始终被解释为字符串。为了允许在您的值中使用字符分隔符(如:,),您必须使用单引号(')或双引号(")包裹您的参数的值。

SQL属性定义

属性的语法的EBNF是

attribute           = "#[", attribute-name, [ attribute-arguments ], "]";
attribute-name      = uppercase-letter, { letter / digit };
attribute-arguments = "(", { attribute-argument, ",{[ ]}" }, ")";
attribute-argument  = {letter / digit / "_" / "-"}, ":{[ ]}", ["'" / '"'], STRING, ["'" / '"'];
uppercase-letter    = "A" .. "Z";
lowercase-letter    = "a" .. "z";
letter              = [uppercase-letter / lowercase-letter]
digit               = "0" .. "9";

安装

通过composer,您可以在composer.json中添加此存储库,执行以下操作

composer require aareon-france/sql-attributes-parser