Sql 系统间缓存-如何插入到联接表中?

Sql 系统间缓存-如何插入到联接表中?,sql,intersystems-cache,objectscript,Sql,Intersystems Cache,Objectscript,以下objectscript将创建以下SQL表: Objectscript类 Class MyApp.Parent Extends %Persistent { Property Children As array Of MyApp.Child; } 父子表和列: Parent int NOT NULL, ID varchar(254) NOT NULL, Children int NULL, element_key varchar(50) NOT NULL 当父对象通过%Save()命令保存

以下objectscript将创建以下SQL表:

Objectscript类

Class MyApp.Parent Extends %Persistent
{
Property Children As array Of MyApp.Child;
}
父子表和列:

Parent int NOT NULL,
ID varchar(254) NOT NULL,
Children int NULL,
element_key varchar(50) NOT NULL
当父对象通过
%Save()
命令保存在objectscript中,并且父对象的子对象属性具有元素时,将在此联接表中自动创建一行。
ID
列的值类似于
“15 | | 1”,
列的
Parent
列具有
Parent
行的主键,
Children
列具有子行的主键


在SQL中,如何为此表创建insert语句?我不知道如何设置ID列的值。

如果您的父项ID为1,子项ID为2,则可以使用:

Insert into MyApp.Parent_Children values (1,null,2,'fzj')

这会将ID为2的子项添加到ID为1的父项的子项数组中,并且在“fzj”数组中有一个键值。这很奇怪,我以为ID不是空的?此外,objectscript生成的元素_key似乎表示子数组的索引,可以在其中放入任何值吗?ID不为NULL,但也有一个默认值。SQL将允许您在其中输入任何值,但如果您在对象脚本中建模索引数组,则希望SQL与对象期望的匹配。因此,是的,您需要放置子数组的索引。