首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在创建表时获取AlreadyExistsException,即使在aws键空间中也找不到表

在创建表时获取AlreadyExistsException,即使在aws键空间中也找不到表
EN

Stack Overflow用户
提问于 2021-12-02 08:49:42
回答 2查看 133关注 0票数 1

我试图通过下面的aws键空间查询来创建一个表。它抛出一个"com.datastax.oss.driver.api.core.servererrors.AlreadyExistsException:对象ascend_dev.ascend_r_c_zzzj已经存在的异常“,甚至在键空间中找不到表。

代码语言:javascript
复制
CREATE TABLE ascend_dev.ascend_r_c_zzzg(id uuid PRIMARY KEY, seqno text  ,wtdrd text  ,drdrstz text  ,drexmer text  ,drabf text  ,drdint text  ,drday text  ,drlang text  ,drmnrsp text  ,drhelpd text  )  WITH bloom_filter_fp_chance = 0.01
   AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
   AND comment = ''
   AND crc_check_chance = 1.0
   AND default_time_to_live = 0
   AND gc_grace_seconds = 864000
   AND max_index_interval = 2048
   AND memtable_flush_period_in_ms = 0
   AND min_index_interval = 128
   AND read_repair_chance = 0.0
   AND speculative_retry = '99PERCENTILE';
EN

回答 2

Stack Overflow用户

发布于 2022-05-11 16:24:38

表的创建和修改是异步的。可以从系统表system_schema_mcs.tables查询表创建状态。下面的示例将一直阻塞,直到表的状态为ACTIVE

代码语言:javascript
复制
while (session.execute(
       "SELECT status FROM system_schema_mcs.tables 
        WHERE keyspace_name = 'mykeyspacename' 
        AND table_name = 'mytablename'")
           .all().stream().noneMatch(x -> x.getString("status").equalsIgnoreCase("ACTIVE"))) {
                
                //Waiting 1s
                Thread.sleep(1000);
            }
票数 1
EN

Stack Overflow用户

发布于 2022-01-14 23:03:04

AWS键空间中的DDL操作是异步的。这样做可能需要一段时间。您可以在非常少的时间范围内创建表,但没有准备好使用(比如一些资源的terraform操作)。

最好的方法是创建如果不存在,并使用retries /轮询来检查何时可用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70196447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档