如何更改二级索引?例如:我想在enum mytypeid {
DERIVED1,
DERIVED2,
};
struct Base
{
virtual mytypeid type() = 0;
};
struct Derived1 : public Base
{
static const mytypeid mytype = DERIVED1;
virtual mytypeid type() { return mytype ; }
};
struct Derived2 : public Base
{
static const mytypeid mytype = DERIVED2;
virtual mytypeid type() { return mytype ; }
};
//...
void fn(Base &a) {
if(a.type() == Derived1::mytype) {
std::cout<<"1"<<std::endl;
}
}
规范中添加一个新列。
答案 0 :(得分:1)
如果要更新索引以在其STORING
子句中存储新列,则需要几个步骤。 Cloud Spanner不支持直接更新索引模式,因此您需要创建新索引并删除旧索引。例如,如果您有一个旧索引“myindex”,那么您正在尝试更新:
STORING
规范。请注意,如果您希望新索引与旧索引具有相同的名称,则可以重复上述步骤重新创建myindex。但是,仍然会有一个临时期间,您将没有名为“myindex”的索引(这可能持续数小时到数天),因此您的应用程序代码需要对此具有弹性。通常最简单的方法是更新应用程序代码以指向新的索引名称。