Auf dieser Seite wird beschrieben, wie Sie Tabellen umbenennen und wie Sie Tabellen hinzufügen, verwenden und löschen. Synonyme verwenden.
Optionen für die Umbenennung von Tabellen und Synonyme
Mit der ALTER TABLE
-Anweisung können Sie Folgendes tun:
- Tabelle umbenennen und den alten Namen einem Synonym hinzufügen
- Tabellennamen tauschen
- Einzelne Tabelle umbenennen
- Erstellen Sie eine neue Tabelle mit einem einzelnen Synonym.
- Ein einzelnes Synonym zu einer Tabelle hinzufügen, ohne sie umzubenennen
So funktioniert die Umbenennung von Tabellen mit Synonymen
Ein häufiges Szenario ist das Umbenennen einer Tabelle und das Hinzufügen eines Synonyms, das den alten Tabellennamen enthält. Nach dem Umbenennen der Tabelle können Sie Anwendungen mit dem neuen Name in Ihrem Zeitplan. Während dieser Zeit kann es passieren, dass einige der alte Name und andere den neuen Namen.
Nachdem Sie alle Ihre Anwendungen mit dem neuen Namen aktualisiert haben, empfehlen wir Folgendes: entfernen Sie das Synonym. Synonyme wirken sich nicht auf die Leistung aus, kann der alte Name erst dann an anderer Stelle verwendet werden, wenn das Synonym entfernt wird.
Synonyme werden im Schema als synonym
-Objekt gespeichert. Sie dürfen nur eine
in einer Tabelle.
Weitere Informationen finden Sie unter Tabellen umbenennen und ein Synonym hinzufügen
So funktioniert das Tauschen von Tabellennamen
Wenn Sie Namen zwischen zwei Tabellen austauschen müssen, können Sie sie verketten.
RENAME TO
-Anweisungen, um zwei Tabellen in derselben Anweisung umzubenennen. Dieses
können Sie Anwendungen ohne Unterbrechung mit einer anderen Tabelle verknüpfen.
Weitere Informationen finden Sie unter Tabellennamen tauschen.
So funktioniert das Umbenennen von Tabellen
Beim Umbenennen einer Tabelle ändert Spanner den Tabellennamen in der das Schema der Tabelle. Durch das Umbenennen einer Tabelle werden alle untergeordneten Tabellen mit der neuen Tabelle verschränkt Namen. Durch das Umbenennen von Tabellen werden auch die Verweise auf die Tabelle für Folgendes geändert:
- Indexe
- Fremdschlüssel
- Streams ändern
- Detaillierte Zugriffssteuerung (FGAC)
Spanner aktualisiert Ansichten nicht automatisch so, dass sie den neuen Tabellennamen verwenden.
Weitere Informationen finden Sie unter Tabelle umbenennen.
Einschränkungen beim Umbenennen von Tabellen
Für das Umbenennen von Tabellen gelten folgende Einschränkungen:
- Sie können eine Tabelle nicht in den Namen einer Spalte in dieser Tabelle umbenennen, wenn die Tabelle mit einer anderen Tabelle verschachtelt.
- Wenn die Tabelle über eine Ansicht verfügt, können Sie die Ansicht löschen und anschließend neu erstellen. um die Tabelle umzubenennen.
Funktionsweise von Synonymen
Sie können eine neue Tabelle mit einem Synonym erstellen oder eine Tabelle ändern, um ein Synonym hinzuzufügen ohne die Tabelle umzubenennen. Ein Szenario, in dem dies sinnvoll sein könnte wenn Sie eine Datenbank sowohl als Produktions- als auch als Testumgebung verwenden möchten.
Weitere Informationen finden Sie unter Einer Tabelle ein Synonym hinzufügen.
Berechtigungen
Um eine Tabelle umzubenennen oder ein Synonym hinzuzufügen, benötigen Sie die
Berechtigung „spanner.databases.updateDdl
“. Informationen zum Überprüfen oder Bearbeiten Ihrer Berechtigungen finden Sie unter
Berechtigungen für Prinzipien erteilen.
Tabelle umbenennen und Synonym hinzufügen
GoogleSQL
ALTER TABLE RENAME TO ADD SYNONYM
verwenden
, um eine Tabelle umzubenennen und ein Synonym hinzuzufügen.
ALTER TABLE table_name RENAME TO new_table_name, ADD SYNONYM table_name;
PostgreSQL
Verwenden Sie ALTER TABLE RENAME WITH ADD SYNONYM
, um eine Tabelle umzubenennen und ein Synonym hinzuzufügen.
ALTER TABLE table_name RENAME WITH SYNONYM TO new_table_name;
Im folgenden Beispiel wird gezeigt, wie eine Tabelle umbenannt und ein Synonym hinzugefügt wird. Für Wenn Sie beispielsweise eine Tabelle mit der folgenden DDL erstellen:
GoogleSQL
CREATE TABLE Singers (
SingerId INT64 NOT NULL,
SingerName STRING(1024)
), PRIMARY KEY (SingerId);
PostgreSQL
CREATE TABLE singers (
singer_id BIGINT,
singer_name VARCHAR(1024),
PRIMARY KEY (singer_id));
Mit der folgenden DDL-Anfrage können Sie die Tabelle umbenennen und die vorhandene
Name an das synonym
-Objekt.
GoogleSQL
ALTER TABLE Singers RENAME TO SingersNew, ADD SYNONYM Singers;
PostgreSQL
ALTER TABLE singers RENAME WITH SYNONYM TO singers_new;
Tabellennamen tauschen
Mit der folgenden DDL-Anweisung werden die Namen mehrerer Tabellen in kleinstmöglichen Schritten geändert. Dies ist nützlich, wenn die Namen zwischen einem oder mehreren Tabellenpaaren ausgetauscht werden.
GoogleSQL
Verwenden Sie RENAME TABLE
.
RENAME TABLE old_name1 TO new_name1 [,old_name2 TO new_name2 ...];
PostgreSQL
Verwenden Sie ALTER TABLE RENAME TO
.
ALTER TABLE [ IF EXISTS ] [ ONLY ] table_name1
RENAME TO new_table_name1
[, ALTER TABLE [ IF EXISTS ] [ ONLY ] table_name2
RENAME TO new_table_name2 ...];
Das folgende Beispiel zeigt, wie die Namen von zwei Tabellen vertauscht werden. Dies erfordert dass die erste Tabelle in einen temporären Namen und die zweite in einen temporären Namen umbenannt wird. auf den Namen der ersten Tabelle setzen, wird die erste Tabelle in die Namen.
Wenn Sie wie folgt zwei Tabellen erstellt:
GoogleSQL
CREATE TABLE Singers (
SingerId INT64 NOT NULL,
SingerName STRING(1024)
), PRIMARY KEY (SingerId);
CREATE TABLE SingersNew (
SingerId INT64 NOT NULL,
FirstName STRING(1024),
MiddleName STRING(1024),
LastName STRING(1024)
), PRIMARY KEY (SingerId);
PostgreSQL
CREATE TABLE singers (
singer_id BIGINT,
singer_name VARCHAR(1024),
PRIMARY KEY (singer_id)
);
CREATE TABLE singers_new (
singer_id BIGINT,
first_name VARCHAR(1024),
middle_name VARCHAR(1024),
last_name VARCHAR(1024)
PRIMARY KEY (singer_id)
);
Mit der folgenden DDL-Anfrage können Sie die Tabellennamen austauschen:
GoogleSQL
RENAME TABLE Singers TO Temp, SingersNew TO Singers, Temp TO SingersNew;
PostgreSQL
ALTER TABLE singers RENAME TO temp,
ALTER TABLE singers_new RENAME TO singers,
ALTER TABLE temp RENAME TO singers_new;
Nach dem Anwenden der DDL-Anweisung werden die Tabellennamen vertauscht:
GoogleSQL
CREATE TABLE Singers (
SingerId INT64 NOT NULL,
FirstName STRING(1024),
MiddleName STRING(1024),
LastName STRING(1024)
), PRIMARY KEY (SingerId);
CREATE TABLE SingersNew (
SingerId INT64 NOT NULL,
SingerName STRING(1024)
), PRIMARY KEY (SingerId);
PostgreSQL
CREATE TABLE singers (
singer_id BIGINT,
first_name VARCHAR(1024),
middle_name VARCHAR(1024),
last_name VARCHAR(1024)
PRIMARY KEY (singer_id)
);
CREATE TABLE singers_new (
singer_id BIGINT,
singer_name VARCHAR(1024),
PRIMARY KEY (singer_id)
);
Tabelle umbenennen
Verwenden Sie die folgende Syntax, um eine Tabelle umzubenennen:
GoogleSQL
Verwenden Sie entweder die
ALTER NAME
oder RENAME TABLE
.
ALTER TABLE table_name RENAME TO new_table_name;
RENAME TABLE table_name TO new_table_name;
PostgreSQL
Verwenden Sie den ALTER TABLE RENAME TO
.
.
ALTER TABLE [ IF EXISTS ] [ ONLY ] table_name
RENAME TO new_table_name;
Das folgende Beispiel zeigt eine DDL-Anfrage, die die Tabelle umbenennt:
GoogleSQL
RENAME TABLE Singers TO SingersNew;
PostgreSQL
ALTER TABLE singers RENAME TO singers_new;
Synonym zu einer Tabelle hinzufügen
So fügen Sie einer Tabelle ein Synonym hinzu:
GoogleSQL
ALTER TABLE table_name ADD SYNONYM synonym;
PostgreSQL
ALTER TABLE [ IF EXISTS ] [ ONLY ] table_name ADD SYNONYM synonym;
Das folgende Beispiel zeigt eine DDL-Anfrage, mit der der Tabelle ein Synonym hinzugefügt wird:
GoogleSQL
ALTER TABLE Singers ADD SYNONYM SingersTest;
PostgreSQL
ALTER TABLE singers ADD SYNONYM singers_test;
Tabelle mit einem Synonym erstellen
So erstellen Sie eine Tabelle mit einem Synonym:
GoogleSQL
Verwenden Sie CREATE TABLE SYNONYM synonym_name
.
CREATE TABLE table_name (
...
SYNONYM (synonym)
) PRIMARY KEY (primary_key);
PostgreSQL
Verwenden Sie CREATE TABLE SYNONYM synonym_name
.
CREATE TABLE table_name (
...
SYNONYM (synonym),
PRIMARY KEY (primary_key));
Im folgenden Beispiel wird eine Tabelle erstellt und ein Synonym hinzugefügt.
GoogleSQL
# The table's name is Singers and the synonym is Artists.
CREATE TABLE Singers (
SingerId INT64 NOT NULL,
SingerName STRING(1024),
SYNONYM (Artists)
) PRIMARY KEY (SingerId);
PostgreSQL
# The table's name is singers and the synonym is artists.
CREATE TABLE singers (
singer_id BIGINT,
singer_name VARCHAR(1024),
SYNONYM (artists),
PRIMARY KEY (singer_id));
Synonym aus einer Tabelle entfernen
GoogleSQL
Verwenden Sie ALTER TABLE DROP SYNONYM um das Synonym aus der Tabelle zu entfernen.
ALTER TABLE table_name DROP SYNONYM synonym;
PostgreSQL
Verwenden Sie ALTER TABLE DROP SYNONYM um das Synonym aus der Tabelle zu entfernen.
ALTER TABLE [ IF EXISTS ] [ ONLY ] table_name DROP SYNONYM synonym;
Im folgenden Beispiel wird eine DDL-Anfrage gezeigt, mit der das Synonym aus der Tabelle gelöscht wird:
GoogleSQL
ALTER TABLE Singers DROP SYNONYM SingersTest;
PostgreSQL
ALTER TABLE singers DROP SYNONYM singers_test;