GetTableDDL

以数据定义语言 (DDL) 格式返回指定为 JSON 数组的表摹本列表的表信息。

格式 

GetTableDDL ( 表摹本名称 ; 忽略错误 )

参数 

表摹本名称 - 要返回的表摹本的 JSON 数组的文本表达式。

忽略错误 - 如果设置为 True,则返回不导致错误的表摹本的 DDL 信息。如果为 False,当没有表摹本导致错误时,返回 DDL 信息;否则返回 "?"指示错误并记录导致 AI 调用日志中错误的表摹本(请参阅设置 AI 调用日志记录脚本步骤)。

返回的数据类型 

文本

原始版本 

21.0

说明 

此函数返回指定表摹本的 DDL 表示。DDL 由 SQL 命令组成,可用于定义数据库模式(表、字段和关系)。您可以在向 AI 模型的请求中提供此函数返回的 DDL,以创建 SQL 查询,用以查询 FileMaker Pro 数据库。事实上,这就是通过自然语言执行 SQL 查询使用与该函数相同的逻辑来生成 DDL。

为了提高此函数返回的 DDL 的质量,请遵循 DDL 和 SQL 查询生成中数据库架构的最佳实践中的建议。

示例 1 

对于包含名为 Meetings and Topics 的表摹本的 FileMaker Pro 文件,GetTableDDL ( "[\"Meetings\", \"Topics\"]"; True) 返回以下内容:

复制
CREATE TABLE "Meetings" (
"Title" varchar(255),
"Location" varchar(255),
"Date" datetime,
"Start Time" datetime,
"End Time" datetime,
"Duration" varchar(255),
"Note" varchar(255),
"PrimaryKey" varchar(255), /*Unique identifier of each record in this table*/
"CreatedBy" varchar(255), /*Account name of the user who created each record*/
"ModifiedBy" varchar(255), /*Account name of the user who last modified each record*/
"CreationTimestamp" datetime, /*Date and time each record was created*/
"ModificationTimestamp" datetime, /*Date and time each record was last modified*/
"Note_Embedding" varbinary(4096),
PRIMARY KEY (PrimaryKey)
);

CREATE TABLE "Topics" (
"ForeignKey" varchar(255), /*Unique identifier of each record in the related table*/
"PrimaryKey" varchar(255), /*Unique identifier of each record in this table*/
"ModifiedBy" varchar(255), /*Account name of the user who last modified each record*/
"ModificationTimestamp" datetime, /*Date and time each record was last modified*/
PRIMARY KEY (PrimaryKey),
FOREIGN KEY (ForeignKey) REFERENCES Meetings(PrimaryKey)
);

在“会议”表中,尚未设置字段注释,因此包含所有字段。对于带有注释的字段,包含注释的文本。

在“主题”表中,已为四个字段设置了字段注释,因此仅包含这些字段及其注释。

示例 2 

打开 AI 调用日志记录,然后对于表摹本名称数组,检查 GetTableDDL 是否返回将 ignoreError 参数设置为 False 的错误。

复制
设置 AI 调用日志记录 [ 打开 ; 文件名: "ai-call.log" ; 详细: 关闭 ]
设置变量 [ $tableDDL ; 值: 
    GetTableDDL ( JSONMakeArray ( "Meetings,Employees,Contact Info" ; "," ; JSONString ) ; 
    False ) ]
If [ $tableDDL = "?" ]
    显示自定义对话框 [ "发生错误。 请参阅 Documents 文件夹中的 ai-call.log。"]
Else
    显示自定义对话框 [ $tableDDL ]
End If