MySQL- Руководство разработчика

Конструкторы таблиц


Конструкторы таблиц представляют собой выражения, которые создают таблицы: каждый раз конструктор оценен, и новая таблица создана. Конструкторы могут использоваться, чтобы создать пустые таблицы или создать таблицу и инициализировать некоторые из полей (необязательно все). Общий синтаксис для конструкторов: tableconstructor ::= `{' fieldlist `}' fieldlist ::= lfieldlist|ffieldlist|lfieldlist `;' ffieldlist|ffieldlist `;' lfieldlist lfieldlist ::= [lfieldlist1] ffieldlist ::= [ffieldlist1]

Форма lfieldlist1 используется, чтобы инициализировать списки: lfieldlist1 ::= exp {`,' exp} [`,'] Выражения в списке назначены последовательным числовым индексам, начиная с 1 (но не с 0!). Например, код: a = {"v1", "v2", 34} является эквивалентным коду: do local temp = {} temp[1] = "v1" temp[2] = "v2" temp[3] = 34 a = temp end

Форма ffieldlist1 инициализирует другие поля в таблице: ffieldlist1 ::= ffield {`,' ffield} [`,'] ffield ::= `[' exp `]' `=' exp | name `=' exp Например такая запись: a = {[f(k)] = g(y), x = 1, y = 3, [0] = b+c} эквивалентна такому коду: do local temp = {} temp[f(k)] = g(y) temp.x = 1 -- or temp["x"] = 1 temp.y = 3 -- or temp["y"] = 3 temp[0] = b+c a = temp end Выражения, подобные {x=1, y=4} фактически синтаксический аналог для выражения вида {["x"]=1, ["y"]=4}.

Обе формы могут иметь факультативную конечную запятую и могут использоваться в том же самом конструкторе, разделенные точкой с запятой. Например, все формы ниже правильны: x = {;} x = {"a", "b",} x = {type="list"; "a", "b"} x = {f(0), f(1), f(2),; n=3,}



Содержание раздела