2013-08-01 125 views
0

以下objectscript將創建下列SQL表:InterSystems緩存 - 如何插入連接表?

Objectscript類

Class MyApp.Parent Extends %Persistent 
{ 
Property Children As array Of MyApp.Child; 
} 

Parent_Children表和列:

Parent int NOT NULL, 
ID varchar(254) NOT NULL, 
Children int NULL, 
element_key varchar(50) NOT NULL 

當家長通過保存在objectscript %Save()命令和Parent的children屬性有一個元素,一行是自動的在此連接表中創建。 ID列的值爲"15||1",Parent列的主鍵爲Parent行,Children列的子主鍵爲子行。

在SQL中,如何爲此表創建插入語句?我不知道如何爲ID列創造價值。

回答

2

如果您有ID爲1和兒童用的2 ID家長,你可以使用:

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

這將與2號加一個孩子的孩子的陣列父用的ID 1,並在「fzj」數組中有一個鍵值。

+0

這很奇怪,我認爲ID不是NULL?此外,由objectcript生成的element_key似乎代表了children數組的索引,可以在其中放置任何值嗎? –

+0

ID不是NULL,但也有一個默認值。 SQL將允許您在其中放入任何值,但是如果您要在對象腳本中對索引數組建模,則需要SQL匹配對象所期望的值。所以,是的,你會想要把兒童數組的索引。 – psr