ALTER statements are used to modified a registered table/view/function definition in the Catalog.
Flink SQL supports the following ALTER statements for now:
ALTER statements can be executed with the sqlUpdate()
method of the TableEnvironment
, or executed in SQL CLI. The sqlUpdate()
method returns nothing for a successful ALTER operation, otherwise will throw an exception.
The following examples show how to run an ALTER statement in TableEnvironment
and in SQL CLI.
EnvironmentSettings settings = EnvironmentSettings.newInstance()...
TableEnvironment tableEnv = TableEnvironment.create(settings);
// register a table named "Orders"
tableEnv.sqlUpdate("CREATE TABLE Orders (`user` BIGINT, product STRING, amount INT) WITH (...)");
// a string array: ["Orders"]
String[] tables = tableEnv.listTable();
// rename "Orders" to "NewOrders"
tableEnv.sqlUpdate("ALTER TABLE Orders RENAME TO NewOrders;");
// a string array: ["NewOrders"]
String[] tables = tableEnv.listTable();
val settings = EnvironmentSettings.newInstance()...
val tableEnv = TableEnvironment.create(settings)
// register a table named "Orders"
tableEnv.sqlUpdate("CREATE TABLE Orders (`user` BIGINT, product STRING, amount INT) WITH (...)");
// a string array: ["Orders"]
val tables = tableEnv.listTable()
// rename "Orders" to "NewOrders"
tableEnv.sqlUpdate("ALTER TABLE Orders RENAME TO NewOrders;")
// a string array: ["NewOrders"]
val tables = tableEnv.listTable()
settings = EnvironmentSettings.newInstance()...
table_env = TableEnvironment.create(settings)
# a string array: ["Orders"]
tables = tableEnv.listTable()
# rename "Orders" to "NewOrders"
tableEnv.sqlUpdate("ALTER TABLE Orders RENAME TO NewOrders;")
# a string array: ["NewOrders"]
tables = tableEnv.listTable()
Flink SQL> CREATE TABLE Orders (`user` BIGINT, product STRING, amount INT) WITH (...);
[INFO] Table has been created.
Flink SQL> SHOW TABLES;
Orders
Flink SQL> ALTER TABLE Orders RENAME TO NewOrders;
[INFO] Table has been removed.
Flink SQL> SHOW TABLES;
NewOrders
ALTER TABLE [catalog_name.][db_name.]table_name RENAME TO new_table_name
Rename the given table name to another new table name.
ALTER TABLE [catalog_name.][db_name.]table_name SET (key1=val1, key2=val2, ...)
Set one or more properties in the specified table. If a particular property is already set in the table, override the old value with the new one.
ALTER DATABASE [catalog_name.]db_name SET (key1=val1, key2=val2, ...)
Set one or more properties in the specified database. If a particular property is already set in the database, override the old value with the new one.
ALTER [TEMPORARY|TEMPORARY SYSTEM] FUNCTION
[IF EXISTS] [catalog_name.][db_name.]function_name
AS identifier [LANGUAGE JAVA|SCALA|
Alter a catalog function with the new identifier which is full classpath for JAVA/SCALA and optional language tag. If a function doesn’t exist in the catalog, an exception is thrown.
TEMPORARY
Alter temporary catalog function that has catalog and database namespaces and overrides catalog functions.
TEMPORARY SYSTEM
Alter temporary system function that has no namespace and overrides built-in functions
IF EXISTS
If the function doesn’t exist, nothing happens.
LANGUAGE JAVA|SCALA
Language tag to instruct flink runtime how to execute the function. Currently only JAVA and SCALA are supported, the default language for a function is JAVA.