Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:
Databricks SQL
Databricks Runtime
Hiermee wijzigt u het schema of de eigenschappen van een tabel.
De ALTER TABLE opdracht wordt niet ondersteund voor tijdelijke tabellen. Er wordt een fout geretourneerd als de ALTER TABLE opdracht wordt toegepast op een tijdelijke tabel. Als de tabel in de cache is opgeslagen, worden met de opdracht gegevens in de cache van de tabel en alle afhankelijke gegevens gewist die ernaar verwijzen. De cache wordt op een uitgestelde manier gevuld wanneer de tabel of de afhankelijkheden de volgende keer worden geopend.
In refererende tabellen kunt u alleen uitvoeren ALTER TABLE SET OWNER en ALTER TABLE RENAME TO.
Vereiste toestemmingen
Als u Unity Catalog gebruikt, moet u gemachtigd zijn MODIFY voor het volgende:
ALTER COLUMNADD COLUMNDROP COLUMNSET TBLPROPERTIESUNSET TBLPROPERTIESPREDICTIVE OPTIMIZATION
Als u Unity Catalog gebruikt, moet u MANAGE machtiging of eigendom hebben voor:
SET OWNER TO
Voor alle andere bewerkingen is het eigendom van de tabel vereist.
Syntaxis
ALTER TABLE table_name
{ RENAME TO clause |
ADD COLUMN clause |
ALTER COLUMN clause |
DROP COLUMN clause |
RENAME COLUMN clause |
DEFAULT COLLATION clause |
ADD CONSTRAINT clause |
DROP CONSTRAINT clause |
DROP FEATURE clause |
ADD PARTITION clause |
DROP PARTITION clause |
PARTITION SET LOCATION clause |
RENAME PARTITION clause |
RECOVER PARTITIONS clause |
SET { ROW FILTER clause } |
DROP ROW FILTER |
SET TBLPROPERTIES clause |
UNSET TBLPROPERTIES clause |
SET SERDE clause |
SET LOCATION clause |
SET OWNER TO clause |
SET SERDE clause |
SET TAGS clause |
UNSET TAGS clause |
CLUSTER BY clause |
PREDICTIVE OPTIMIZATION clause}
Parameterwaarden
-
Hiermee wordt de tabel geïdentificeerd die wordt gewijzigd. De naam mag geen tijdelijke specificatie of optiesspecificatie bevatten. Als de tabel niet kan worden gevonden, genereert Azure Databricks een TABLE_OR_VIEW_NOT_FOUND-fout.
RENAME TOto_table_nameWijzigt de naam van de tabel.
-
Hiermee wordt de naam van de nieuwe tabel geïdentificeerd. De naam mag geen tijdelijke specificatie of optiesspecificatie bevatten.
Voor Unity Catalog-tabellen moet de
to_table_nametabel zich in dezelfde catalogus bevinden alstable_name. Voor andere tabellen moet deto_table_nametabel zich in hetzelfde schema bevinden alstable_name.Als
to_table_nameniet-gekwalificeerd is, wordt dit impliciet gekwalificeerd volgens het huidige schema.
> ALTER TABLE student RENAME TO student_info;-
-
Hiermee voegt u een of meer kolommen toe aan de tabel.
Wanneer u een kolom toevoegt aan een bestaande Delta Lake-tabel, kunt u geen
DEFAULTwaarde definiëren. Alle kolommen die aan Delta Lake-tabellen worden toegevoegd, worden behandeld alsNULLvoor bestaande rijen. Nadat u een kolom hebt toegevoegd, kunt u desgewenst een standaardwaarde definiëren voor nieuwe rijen met behulp vanALTER COLUMN.> DESCRIBE StudentInfo; col_name data_type comment ----------------------- --------- ------- name string NULL rollno int NULL age int NULL > ALTER TABLE StudentInfo ADD columns (LastName string, DOB timestamp); -- After adding new columns to the table > DESCRIBE StudentInfo; col_name data_type comment ----------------------- --------- ------- name string NULL rollno int NULL LastName string NULL DOB timestamp NULL age int NULL -- Optionally set a default value for new rows > ALTER TABLE StudentInfo ALTER COLUMN LastName SET DEFAULT 'unknown';
-
Hiermee wijzigt u een eigenschap of de locatie van een kolom.
> DESCRIBE StudentInfo; col_name data_type comment ----------------------- --------- ------- name string NULL rollno int NULL LastName string NULL DOB timestamp NULL age int NULL > ALTER TABLE StudentInfo ALTER COLUMN name COMMENT "new comment"; -- After altering the column > DESCRIBE StudentInfo; col_name data_type comment ----------------------- --------- ----------- name string new comment rollno int NULL LastName string NULL DOB timestamp NULL age int NULLMeerdere kolommen in één instructie wijzigen:
-- Create a table with 3 columns > CREATE TABLE my_table (num INT, str STRING, bool BOOLEAN) TBLPROPERTIES('delta.feature.allowColumnDefaults' = 'supported') > DESCRIBE TABLE my_table; col_name data_type comment -------- --------- ------- num int null str string null bool boolean null -- Update comments on multiple columns > ALTER TABLE table ALTER COLUMN num COMMENT 'number column', str COMMENT 'string column'; > DESCRIBE TABLE my_table; col_name data_type comment -------- --------- ------------- num int number column str string string column bool boolean null -- Can mix different types of column alter > ALTER TABLE table ALTER COLUMN bool COMMENT 'boolean column', num AFTER bool, str AFTER num, bool SET DEFAULT true; > DESCRIBE TABLE my_table; col_name data_type comment -------- --------- -------------- bool boolean boolean column num int number column str string string column -
Verwijder een of meer kolommen of velden in een Delta Lake-tabel.
naam van COLUMN wijzigen
Wijzigt de naam van een kolom of veld in een Delta Lake-tabel.
> ALTER TABLE StudentInfo RENAME COLUMN name TO FirstName; -- After renaming the column > DESCRIBE StudentInfo; col_name data_type comment ----------------------- --------- ----------- FirstName string new comment rollno int NULL LastName string NULL DOB timestamp NULL age int NULL
-
Hiermee voegt u een controleconstraint, informatieve buitenlandse sleutelconstraint of informatieve primaire sleutelconstraint toe aan de tabel.
Vreemde sleutels en primaire sleutels worden alleen ondersteund voor tabellen in Unity Catalog, niet voor de
hive_metastorecatalogus. DEFAULT COLLATIONcollatie_naamVan toepassing op:
Databricks SQL
Databricks Runtime 16.3 en hogerHiermee wijzigt u de standaardsortering van de tabel voor nieuwe
STRINGkolommen. Bestaande kolommen worden niet beïnvloed door deze component. Als u de sortering van een bestaande kolom wilt wijzigen, gebruikt uALTER TABLE ... ALTER COLUMN ... COLLATE collation_name.
-
Hiermee wordt een primaire sleutel, buitenlandse sleutel of check-voorwaarde uit de tabel verwijderd.
DROP FEATURE feature_name [ TRUNCATE HISTORY ]Van toepassing op:
Databricks Runtime 14.3 LTS en hogerVerouderde ondersteuning voor
DROP FEATUREis beschikbaar vanaf Databricks Runtime 14.3 LTS. Zie Drop Delta-tabelfuncties (verouderd) voor documentatie over de verouderde functionaliteit.Van toepassing op:
Databricks SQL
Databricks Runtime 16.3 en hogerAzure Databricks raadt aan om Databricks Runtime 16.3 en hoger te gebruiken voor alle
DROP FEATUREopdrachten, waardoor het verouderde gedrag wordt vervangen.Hiermee verwijdert u een functie uit een Delta Lake-tabel.
Als u een functie verwijdert, kan dit leiden tot het toevoegen van de
checkpointProtectionschrijffunctie in het tabelprotocol. Zie Drop Delta-tablefuncties en Table functies voor protocolcompatibiliteit voor meer informatie.feature_nameDe naam van een functie in de vorm van een
STRINGletterlijke of id, die moet worden begrepen door Azure Databricks en moet worden ondersteund in de tabel.Als de functie niet aanwezig is in de tabel, verhoogt Azure Databricks DELTA_FEATURE_DROP_FEATURE_NOT_PRESENT.
TRUNCEREN VAN GESCHIEDENIS
Het verwijderen van functies door de geschiedenis af te kapen. Hiervoor is een proces met twee fasen vereist:
Voor het verwijderen van functies door het afkappen van de geschiedenis is een proces in twee stappen vereist:
Met de eerste aanroep worden sporen van de functie gewist en wordt u geïnformeerd over gedeeltelijk succes.
Wacht tot de bewaarperiode is verstreken voordat u de opdracht opnieuw uitvoert om de verwijdering te voltooien.
Als u de tweede aanroep te vroeg start, genereert Azure Databricks DELTA_FEATURE_DROP_WAIT_FOR_RETENTION_PERIOD of DELTA_FEATURE_DROP_HISTORICAL_VERSIONS_EXIST.
Door de tabelgeschiedenis af te kappen, beperkt u uw vermogen om DESCRIBE HISTORY uit te voeren en tijdreisquery's uit te voeren.
-- Drop the "deletion vectors" from a Delta table > ALTER TABLE my_table DROP FEATURE deletionVectors; -- 24 hours later > ALTER TABLE my_table DROP FEATURE deletionVectors TRUNCATE HISTORY;-
Voegt een of meer partities toe aan de tabel.
> SHOW PARTITIONS StudentInfo; partition --------- age=11 age=12 age=15 > ALTER TABLE StudentInfo ADD IF NOT EXISTS PARTITION (age=18); -- After adding a new partition to the table > SHOW PARTITIONS StudentInfo; partition --------- age=11 age=12 age=15 age=18 -- Adding multiple partitions to the table > ALTER TABLE StudentInfo ADD IF NOT EXISTS PARTITION (age=18) PARTITION (age=20); > SHOW PARTITIONS StudentInfo; partition --------- age=11 age=12 age=15 age=18 age=20 -
Hiermee verwijdert u een of meer partities uit de tabel.
> SHOW PARTITIONS StudentInfo; partition --------- age=11 age=12 age=15 age=18 > ALTER TABLE StudentInfo DROP IF EXISTS PARTITION (age=18); -- After dropping the partition of the table > SHOW PARTITIONS StudentInfo; partition --------- age=11 age=12 age=15 -
Hiermee stelt u de locatie van een partitie in.
> ALTER TABLE dbx.tab1 PARTITION (a='1', b='2') SET LOCATION '/path/to/part/ways'; naam van PARTITION wijzigen
Vervangt de sleutels van een partitie.
> SHOW PARTITIONS StudentInfo; partition --------- age=10 age=11 age=12 > ALTER TABLE default.StudentInfo PARTITION (age='10') RENAME TO PARTITION (age='15'); -- After renaming Partition > SHOW PARTITIONS StudentInfo; partition --------- age=11 age=12 age=15-
Geeft Azure Databricks opdracht om de locatie van de tabel te scannen en bestanden toe te voegen aan de tabel die rechtstreeks aan het bestandssysteem zijn toegevoegd.
-
Van toepassing op:
Databricks SQL
Databricks Runtime 12.2 LTS en hoger
en alleen Unity CatalogHiermee voegt u een rijfilterfunctie toe aan de tabel. Alle volgende query's voor de tabel ontvangen een subset van de rijen waarin de functie resulteert in de booleaanse waarde WAAR. Dit kan handig zijn voor verfijnde toegangsbeheerdoeleinden, waarbij de functie de identiteit of groepslidmaatschappen van de aanroepende gebruiker kan inspecteren om te bepalen of bepaalde rijen moeten worden gefilterd.
DROP ROW FILTERVan toepassing op:
alleen op Unity CatalogHiermee wordt het rijfilter uit de tabel verwijderd, indien van toepassing. Toekomstige query's retourneren alle rijen uit de tabel zonder automatisch filteren.
-
Hiermee stelt u een of meer door de gebruiker gedefinieerde eigenschappen in of stelt u deze opnieuw in.
> ALTER TABLE dbx.tab1 SET TBLPROPERTIES ('winner' = 'loser'); -
Hiermee verwijdert u een of meer door de gebruiker gedefinieerde eigenschappen.
> ALTER TABLE dbx.tab1 UNSET TBLPROPERTIES ('winner'); SET SERDEVan toepassing op:
Databricks RuntimeHiermee geeft u de serializer/deserializer -klasse (SerDe) op die wordt gebruikt voor het lezen en schrijven van gegevens in een Hive-indelingstabel. U kunt ook SerDe-eigenschappen configureren met
WITH SERDEPROPERTIES.> ALTER TABLE test_tab SET SERDE 'org.apache.hadoop.hive.serde2.columnar.LazyBinaryColumnarSerDe'; > ALTER TABLE dbx.tab1 SET SERDE 'org.apache.hadoop' WITH SERDEPROPERTIES ('k' = 'v', 'kay' = 'vee');SET LOCATIONHiermee verplaatst u de locatie van een tabel.
SET LOCATION pathLOCATION pathpathmoet eenSTRINGletterlijke waarde zijn. Specificeert de nieuwe locatie voor de tabel.Bestanden op de oorspronkelijke locatie worden niet verplaatst naar de nieuwe locatie.
[ SET ] OWNER TOdirecteurHiermee wordt het eigendom van de tabel overgedragen naar
principal.Van toepassing op:
Databricks SQL
Databricks Runtime 11.3 LTS en hogerSETis toegestaan als een optioneel trefwoord.SET TAGS ( { tag_name = tag_value } [, ...] )Van toepassing op:
Databricks SQL
Databricks Runtime 13.3 LTS en hogerTags toepassen op de tabel. U moet gemachtigd zijn
APPLY TAGom tags toe te voegen aan de tabel.tag_name
Een letterlijke
STRING. Detag_namenaam moet uniek zijn binnen de tabel of kolom.tag_value
Een letterlijke
STRING.
-- Applies three tags to the table named `test`. > ALTER TABLE test SET TAGS ('tag1' = 'val1', 'tag2' = 'val2', 'tag3' = 'val3'); -- Applies three tags to table `main.schema1.test` column `col1`. > ALTER TABLE main.schema1.test ALTER COLUMN col1 SET TAGS ('tag1' = 'val1', 'tag2' = 'val2', 'tag3' = 'val3');UNSET TAGS ( tag_name [, ...] )Van toepassing op:
Databricks SQL
Databricks Runtime 13.3 LTS en hogerVerwijder tags uit de tabel. U moet gemachtigd zijn
APPLY TAGom tags uit de tabel te verwijderen.tag_name
Een letterlijke
STRING. Detag_namenaam moet uniek zijn binnen de tabel of kolom.
-- Removes three tags from the table named `test`. > ALTER TABLE test UNSET TAGS ('tag1', 'tag2', 'tag3'); -- Removes three tags from table `main.schema1.test` column `col1`. > ALTER TABLE main.schema1.test ALTER COLUMN col1 UNSET TAGS ('tag1', 'tag2', 'tag3');-
Van toepassing op:
Databricks SQL
Databricks Runtime 13.3 LTS en hogerHiermee wordt de clusterstrategie voor een Delta Lake-tabel toegevoegd, gewijzigd of verwijderd.
{ ENABLE | DISABLE | INHERIT } PREDICTIVE OPTIMIZATIONVan toepassing op:
Databricks SQL
Databricks Runtime 12.2 LTS en hoger
en alleen Unity CatalogHiermee wijzigt u de beheerde Delta Lake-tabel in de gewenste instelling voor voorspellende optimalisatie.
Wanneer tabellen worden gemaakt, is het standaardgedrag om
INHERITvanuit het schema te gebruiken.Wanneer voorspellende optimalisatie expliciet wordt ingeschakeld of als ingeschakeld wordt overgenomen, worden OPTIMIZE en VACUUM automatisch in de tabel aangeroepen, zoals passend wordt geacht door Azure Databricks. Zie voor meer informatie: Voorspellende optimalisatie voor beheerde tabellen in Unity Catalog.
-- Enables predictive optimization for my_table > ALTER TABLE my_table ENABLE PREDICTIVE OPTIMIZATION;
Aanvullende voorbeelden
Zie voor Delta Lake beperkingen toevoegen en kolomvoorbeelden wijzigen
Verwante artikelen:
- ADD CONSTRAINT component: Beperkingen voor controles, primaire sleutels en refererende sleutels toevoegen of verwijderen.
- ALTER MATERIALIZED VIEW: Syntaxis voor het wijzigen van gerealiseerde weergaven.
- ALTER STREAMING TABLE: Syntaxis voor het wijzigen van streamingtabellen.
- ALTER TABLE ... COLUMN component: volledige syntaxis voor ADD, ALTER, DROP en RENAME COLUMN.
- ALTER TABLE ... PARTITION: Volledige syntaxis voor het toevoegen, verwijderen en hernoemen van partities.
- Tabelschema bijwerken: de naam van kolomtypen in een Delta-tabel wijzigen of wijzigen.