首页 > 解决方案 > cockroachDb :仅在表存在时截断

问题描述

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

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

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

标签: sqlcockroachdb

解决方案


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


推荐阅读