将 INT64 列类型转换为 STRING 时,ALTER TABLE 失败
ALTER TABLE fails while converting INT64 column type to STRING
我有 table homes_passed,其中有一列 street_number,该列不可为 null,类型为 INT64。我想使用 alter table 命令将列更改为 STRING,但由于某种原因我无法实现。
改变列的类型有什么规则吗?我无法在文档中找到规则。任何指针都会有所帮助。
请注意,table 是空的,并且该列不是任何索引的一部分。
这是我收到的操作状态。
{
"name":"projects/*****************/instances/my-instance/databases/my-database/operations/_auto_15*************",
"metadata":{
"@type":"type.googleapis.com/google.spanner.admin.database.v1.UpdateDatabaseDdlMetadata",
"database":"projects/*****************/instances/my-instance/databases/my-database",
"statements":[
"ALTER TABLE homes_passed ALTER COLUMN street_number STRING(130) NOT NULL"
]
},
"done":true,
"error":{
"code":3,
"message":"Cannot change type of column homes_passed.street_number from INT64 to STRING."
}
}
Google Cloud Spanner 数据库中不允许进行此修改。仅允许以下更改:https://cloud.google.com/spanner/docs/schema-updates#supported_schema_updates
我有 table homes_passed,其中有一列 street_number,该列不可为 null,类型为 INT64。我想使用 alter table 命令将列更改为 STRING,但由于某种原因我无法实现。
改变列的类型有什么规则吗?我无法在文档中找到规则。任何指针都会有所帮助。
请注意,table 是空的,并且该列不是任何索引的一部分。
这是我收到的操作状态。
{
"name":"projects/*****************/instances/my-instance/databases/my-database/operations/_auto_15*************",
"metadata":{
"@type":"type.googleapis.com/google.spanner.admin.database.v1.UpdateDatabaseDdlMetadata",
"database":"projects/*****************/instances/my-instance/databases/my-database",
"statements":[
"ALTER TABLE homes_passed ALTER COLUMN street_number STRING(130) NOT NULL"
]
},
"done":true,
"error":{
"code":3,
"message":"Cannot change type of column homes_passed.street_number from INT64 to STRING."
}
}
Google Cloud Spanner 数据库中不允许进行此修改。仅允许以下更改:https://cloud.google.com/spanner/docs/schema-updates#supported_schema_updates