我正在创建一个数据模型来存储与生产跟踪相关的数据。我在一家工程公司工作,为我们的客户建模和分析数据。这个过程有几个步骤,而且这个过程是不断更新的。
我正在尝试对流程进行建模并包括父流程和流程的顺序。
例如:
Process Table
---------------------
ProcessID - uniqueidentifier
ProcessName - varchar
ProcessDescription - varchar
...
ProcessOrder Table
---------------------
ProcessID - uniqueidentifier FK - Process
ParentProcessID - uniqueidentifier FK - Process
ProcessOrder - int
...
Run Code Online (Sandbox Code Playgroud)
中的ProcessOrder
列ProcessOrder
表中将简单地存储一个数字,该数字表示它代表的父进程中的哪个顺序步骤。
例如,一个建模过程有以下步骤:创建新的空模型、命名模型、输入模型参数。该Process
表将如下所示:
ProcessID | ProcessName | ProcessDescription
-------------------------------------------------
UUID1 | Modeling | Create Model of Data
UUID2 | New Model | create new empty model
UUID3 | Name Model | name model
UUID4 | Parameters | enter model parameters …
Run Code Online (Sandbox Code Playgroud) 我正在尝试获取有关数据库中数据的信息。我在几个表中有几列输入“TEXT”。我想执行一个查询,该查询将创建如下所示的结果:
|table_name|column_name|max_length|
-----------------------------------
|my_table |name |35 |
Run Code Online (Sandbox Code Playgroud)
我有查询来获取所有表和列:
SELECT table_name, column_name FROM information_schema.columns
WHERE table_schema = 'public' AND data_type = 'text'
ORDER BY table_name
Run Code Online (Sandbox Code Playgroud)
但我现在不知道如何遍历每个表和列以获得每列的最大长度。我确实有一个查询来获取特定列和表的最大长度:
SELECT 'my_table', 'name', MAX(LENGTH(name)) FROM my_table
Run Code Online (Sandbox Code Playgroud)
如何进行查询,根据查询结果动态获取最大长度以获取所有表和列?