2013-08-01 2 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() и свойство родительского дочернего элемента имеет элемент, строка автоматически созданный в этой таблице соединений. Столбец ID имеет значение "15||1",. Столбец Parent имеет первичный ключ строки Parent, а столбец Children содержит первичный ключ дочерней строки.

В SQL, как создать инструкцию insert для этой таблицы? Я не знаю, как сделать значение для столбца ID.

ответ

2

Если у вас есть родитель с ID 1 и ребенком с идентификатором 2 вы можете использовать:

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

который добавит ребенок с идентификатором 2 в массив детей для родителей с идентификатором 1, и имеют ключевое значение в массиве «fzj».

+0

Это странно, я думал, что идентификатор не был NULL? Кроме того, element_key при сгенерировании objectcript, по-видимому, представляет собой индекс дочернего массива, можно ли в нем добавить какое-либо значение? –

+0

ID не является NULL, но также имеет значение по умолчанию. SQL позволит вам добавить любое значение, но если вы моделируете индексированный массив в объектном скрипте, вы хотите, чтобы SQL соответствовал ожидаемому объекту. Итак, да, вы хотели бы поместить индекс дочернего массива. – psr

Смежные вопросы