【问题标题】:cockroachDb : Only Truncate if table existscockroachDb :仅在表存在时截断
【发布时间】:2019-12-15 03:34:11
【问题描述】:

如果表存在于 cockroachdb 中,如何截断表? 我想删除 cockroachdb 表中的所有记录。 该表可能存在也可能不存在。 只有在 cockroachdb 中存在表时,我才能截断表。

我可以看到mysql中使用了IF exists。但是我在cockroach db中找不到类似的语法。

truncate table IF exists table1;
ERROR:  syntax error at or near "exists"
DETAIL:  source SQL:
truncate table IF exists table1;

【问题讨论】:

  • 似乎不支持(但已经有请求)github.com/cockroachdb/cockroach/issues/37798 所以它可能必须通过单独的脚本检查是否存在并返回 0/1 来完成。然后,此返回确定是否调用了截断脚本。
  • 您的语法不正确。见这里cockroachlabs.com/docs/stable/truncate.html。另一种方法是 DROP TABLE IF EXISTS 然后再次创建它。
  • 您也可以截断表格并在错误不存在时忽略错误(如果您不想删除它)..
  • 感谢 @SAS 和 ankit Bajpal 的宝贵意见。

标签: sql cockroachdb


【解决方案1】:

上面 SAS 的评论是正确的。 GitHub issue #37798 讨论了这种语法,并且基于 this comment,我们似乎不太可能很快(如果有的话)支持这种语法,因为 Postgres 不支持它。 That comment 还提到了两种解决方法(上面的 Ankit Bajpai 也提到了其中一种):DROP TABLE IF EXISTS 后跟 CREATE TABLE,或 CREATE TABLE IF NOT EXISTS 后跟 TRUNCATE

【讨论】:

    猜你喜欢
    • 2017-09-05
    • 2018-12-18
    • 2010-10-12
    • 1970-01-01
    • 2011-12-02
    • 2014-03-02
    • 1970-01-01
    • 2022-01-23
    相关资源
    最近更新 更多