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 (
-