【问题标题】:EXPLAIN in postgresql not working在 postgresql 中解释不工作
【发布时间】:2015-08-13 15:04:37
【问题描述】:

我有以下 SQL 代码,但它不工作,它说语法错误:

EXPLAIN
DROP TABLE cool_table

有人知道为什么吗?

我写这个问题是因为我被教导在对数据库运行查询之前总是使用 EXPLAIN 以避免运行对数据库处理来说太多的任务,没有人告诉我不要在 DROP 之前使用 EXPLAIN。然后我有一个关于为什么 EXPLAIN 不能与 DROP 一起使用的问题。

【问题讨论】:

  • 有什么要解释的?
  • 我一辈子都想不通为什么要解释 drop table ......
  • DROP TABLE 并不是真正需要查询计划的东西。它不关心表中的内容或数据的分布方式——它只是删除表
  • 大家好,所以我们的想法是看看操作的成本有多高,确保它不会影响服务器的速度
  • @KevinZhao 不,有ALTER TABLE 可以重命名列。但是如果你需要在生产中频繁更改列名,那就是设计问题了。在开发中是另一回事。

标签: sql postgresql syntax syntax-error explain


【解决方案1】:

它应该不起作用 - DDL 语句没有计划 - 所以 EXPLAIN 没有什么可显示的。

【讨论】:

  • 这并不完全正确。 create table .. as select ... 也是 DDL,确实有一个执行计划。
  • 但是 CREATE TABLE AS SELECT 是什么? DDL 还是 SELECT?
  • 显然是 DDL,因为它创建了一个新表。
  • 好的,由于这个声明的奇怪性质,我这是例外。对我来说,CREATE AS SELECT 是一个盒子里的两个语句 - CREATE TABLE 和 INSERT INTO SELECT - 但这个主题并不太重要
【解决方案2】:

事实证明,您不能将 EXPLAIN 放在 Postgresql 中的 DROP 语句之前...

EXPLAIN 不与 DROP 一起使用,而是与其他语句一起使用

【讨论】:

    猜你喜欢
    • 2018-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-19
    • 2020-12-10
    • 2014-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多