space_object:get()
-
object
space_object¶ -
space_object:get(key)¶ Поиск кортежа в данном спейсе.
Параметры: - space_object (
space_object) – ссылка на объект - key (
scalar/table) – значение должно совпасть с индексным ключом, который может быть составным.
возвращает: кортеж, ключ индекса в котором совпадает с
keyилиnil.тип возвращаемого значения: tuple
Возможные ошибки:
space_objectне существует.ER_TRANSACTION_CONFLICT, если транзакция стала конфликтной в транзакционном режиме MVCC.
Факторы сложности Размер индекса, тип индекса, количество индексов, к которым получен доступ, настройки журнала упреждающей записи (WAL).
Функция
box.space...selectвернет набор кортежей в виде Lua-таблицы; функцияbox.space...getвернет самое большее один кортеж. Можно получить первый кортеж в спейсе, добавив[1]. Таким образом,box.space.tester:get{1}эквивалентнаbox.space.tester:select{1}[1], если найден только один кортеж.Пример:
box.space.tester:get{1}
Использование имен полей вместо номеров полей: в
get()можно использовать имена полей, описанные в необязательном операторе space_object:format(). Это связано с тем, что функцияget()возвращает объет, который можно использовать с большинством функций, описанных в Вложенный модуль box.tuple, включая tuple_object[field-name].Например, может форматировать спейс
testerс полем под названиемxи использовать имяxв определении индекса:box.space.tester:format({{name='x',type='scalar'}}) box.space.tester:create_index('I',{parts={'x'}})
Тогда если
getилиselectвернут отдельный кортеж, можно сослаться на поле „x“ в кортеже по имени:box.space.tester:get{1}['x'] box.space.tester:select{1}[1]['x']
- space_object (
-