manual/russian/Emptying_a_table.md
Таблицу можно очистить с помощью SQL-запроса TRUNCATE TABLE или функции клиента PHP truncate().
Вот синтаксис для SQL-запроса:
TRUNCATE TABLE table_name [WITH RECONFIGURE]
При выполнении этого запроса RT или распределённая таблица полностью очищается. Данные в памяти удаляются, все файлы данных таблицы разрываются, и освобождаются связанные бинарные логи.
Для очистки распределённой таблицы используйте синтаксис без опции with reconfigure. Просто выполните стандартный запрос TRUNCATE для вашей распределённой таблицы.
TRUNCATE TABLE distributed_table
ПРИМЕЧАНИЕ. Очистка распределённой таблицы требует Manticore Buddy. Если это не работает, убедитесь, что Buddy установлен.
Таблицу также можно очистить с помощью DELETE FROM index WHERE id>0, но это не рекомендуется, так как работает медленнее, чем TRUNCATE.
TRUNCATE TABLE products;
Query OK, 0 rows affected (0.02 sec)
POST /cli -d "TRUNCATE TABLE products"
{
"total":0,
"error":"",
"warning":""
}
$params = [ 'table' => 'products' ];
$response = $client->indices()->truncate($params);
Array(
[total] => 0
[error] =>
[warning] =>
)
utilsApi.sql('TRUNCATE TABLE products')
{u'error': u'', u'total': 0, u'warning': u''}
await utilsApi.sql('TRUNCATE TABLE products')
{u'error': u'', u'total': 0, u'warning': u''}
res = await utilsApi.sql('TRUNCATE TABLE products');
{"total":0,"error":"","warning":""}
utilsApi.sql("TRUNCATE TABLE products", true);
{total=0, error=, warning=}
utilsApi.Sql("TRUNCATE TABLE products", true);
{total=0, error="", warning=""}
utils_api.sql("TRUNCATE TABLE products", Some(true)).await;
{total=0, error="", warning=""}
Одно из возможных применений этой команды — перед присоединением таблицы.
<!-- example truncate with RECONFIGURE -->Когда используется опция RECONFIGURE, новые настройки токенизации, морфологии и другие параметры обработки текста, заданные в конфигурации, вступают в силу после очистки таблицы. В случае если описание схемы в конфигурации отличается от схемы таблицы, новая схема из конфигурации применяется после очистки таблицы.
ПРИМЕЧАНИЕ. Опция
RECONFIGUREимеет смысл только в Plain mode, где применяются настройки из конфигурационного файла. Обратите внимание, чтоTRUNCATEподдерживается только для RT таблиц, а опцияRECONFIGUREможет использоваться с RT таблицами только в Plain mode.
С этой опцией очистка и перенастройка таблицы становятся одной атомарной операцией.
<!-- intro -->TRUNCATE TABLE products with reconfigure;
Query OK, 0 rows affected (0.02 sec)
POST /cli -d "TRUNCATE TABLE products with reconfigure"
{
"total":0,
"error":"",
"warning":""
}
$params = [ 'table' => 'products', 'with' => 'reconfigure' ];
$response = $client->indices()->truncate($params);
Array(
[total] => 0
[error] =>
[warning] =>
)
utilsApi.sql('TRUNCATE TABLE products WITH RECONFIGURE')
{u'error': u'', u'total': 0, u'warning': u''}
await utilsApi.sql('TRUNCATE TABLE products WITH RECONFIGURE')
{u'error': u'', u'total': 0, u'warning': u''}
res = await utilsApi.sql('TRUNCATE TABLE products WITH RECONFIGURE');
{"total":0,"error":"","warning":""}
utilsApi.sql("TRUNCATE TABLE products WITH RECONFIGURE", true);
{total=0, error=, warning=}
utilsApi.Sql("TRUNCATE TABLE products WITH RECONFIGURE" ,true);
{total=0, error="", warning=""}
utils_api.sql("TRUNCATE TABLE products WITH RECONFIGURE", Some(true)).await;
{total=0, error="", warning=""}