在MySQL中,删除表时会自动删除索引吗?其他数据库是否也适用于Postgres?
答案 0 :(得分:4)
是的,它会被自动删除以检查它是否可以执行以下操作
CREATE TABLE myTable (column1 INT);
CREATE INDEX index_on_mytable ON table1 (column1);
它将创建一个名为myTable的表,并将索引index_on_mytable与其关联
现在查看详情如下
SELECT COUNT(*) FROM information_schema.STATISTICS WHERE INDEX_NAME = 'index_on_myTable';
这将返回1表示索引存在
现在放弃表格
DROP TABLE myTable;
再次检查
SELECT COUNT(*) FROM information_schema.STATISTICS WHERE INDEX_NAME = 'index_on_myTable';
这次它将返回0,因为索引将被删除。
答案 1 :(得分:1)
是。 RDBMS中的索引不能独立于它们所属的表存在。
答案 2 :(得分:0)
删除所有表格数据;这包括索引和表定义。
在给定表数据和定义保持不变的情况下,始终可以重建索引,但不是相反。没有任何其他东西,无法从索引中恢复任何有意义的东西。
我不知道另一个会留下索引的数据库服务器,但这并不意味着没有索引。