问题
Is it possible to issue something like
RENAME COLUMN col1 col2
in Google Cloud Spanner? It looks from the DDL that this isn't possible; if not, is this a design choice or a limitation whilst in Beta?
回答1:
No, this is not possible. Currently you can only do the following with regard to altering columns in a table:
- Add a new one
- Delete an existing one, unless it's a key column
- Change delete behavior (cascading or not)
- Convert between
STRING
andBYTES
- Change length of
STRING
andBYTES
- Add or remove
NOT NULL
modifier
A work around is possible by following these steps in order:
- Add the new column to your table
- Update your code to read to from both columns
- Update your code to only write to the new one
- Run a Cloud Dataflow job to migrate the data from the old column to the new column
- Update your code to only read from the new column
- Drop the old column
Keep in mind the above steps will not work for the primary key column, you'll have to do by creating a new table, and doing the data migration that way.
来源:https://stackoverflow.com/questions/42506782/is-it-possible-to-rename-columns