删除表的过程在内部执行分为两步:
从表的文件夹中删除所有的表文件。所有由表使用的外部表文件(例如 wordforms、扩展或 stopwords)也会被删除。请注意,当使用 CREATE TABLE
创建表时,这些外部文件会被复制到表文件夹中,因此 CREATE TABLE
中指定的原始文件不会被删除。
删除表仅在服务器运行于 RT 模式时才可能。可以删除 RT 表、PQ 表以及分布式表。
SQL:
Query OK, 0 rows affected (0.02 sec)
JSON:
POST /cli -d "DROP TABLE products"
{
"total":0,
"error":"",
"warning":""
}
PHP:
$params = [ 'index' => 'products' ];
$response = $client->indices()->drop($params);
Array
(
[total] => 0
[error] =>
[warning] =>
)
Python:
utilsApi.sql('DROP TABLE products')
{u'error': u'', u'total': 0, u'warning': u''}
Javascript:
res = await utilsApi.sql('DROP TABLE products');
{"total":0,"error":"","warning":""}
java:
sqlresult = utilsApi.sql("DROP TABLE products");
{total=0, error=, warning=}
C#:
sqlresult = utilsApi.Sql("DROP TABLE products");
{total=0, error="", warning=""}
以下是 DROP TABLE
语句在 SQL 中的语法:
DROP TABLE [IF EXISTS] index_name
通过 SQL 删除表时,可以使用 IF EXISTS
选项来确保仅在表存在时才删除。如果尝试删除一个不存在的表且使用了 IF EXISTS
选项,则不会发生任何操作。
通过 PHP 删除表时,你可以添加一个可选的 silent
参数,作用与 IF EXISTS
相同。
SQL:
DROP TABLE IF EXISTS products;
JSON:
POST /cli -d "DROP TABLE IF EXISTS products"
PHP:
$params =
[
'index' => 'products',
'body' => ['silent' => true]
];
$client->indices()->drop($params);
Python:
utilsApi.sql('DROP TABLE IF EXISTS products')
{u'error': u'', u'total': 0, u'warning': u''}
Javascript:
res = await utilsApi.sql('DROP TABLE IF EXISTS products');
{"total":0,"error":"","warning":""}
java:
sqlresult = utilsApi.sql("DROP TABLE IF EXISTS products");
{total=0, error=, warning=}
C#:
sqlresult = utilsApi.Sql("DROP TABLE IF EXISTS products");
{total=0, error="", warning=""}