ALTER Statements

    Flink SQL supports the following ALTER statements for now:

    • ALTER TABLE
    • ALTER VIEW
    • ALTER DATABASE
    • ALTER FUNCTION

    Java

    ALTER statements can be executed with the method of the TableEnvironment. The executeSql() method returns ‘OK’ for a successful ALTER operation, otherwise will throw an exception.

    The following examples show how to run an ALTER statement in TableEnvironment.

    Scala

    ALTER statements can be executed with the executeSql() method of the TableEnvironment. The executeSql() method returns ‘OK’ for a successful ALTER operation, otherwise will throw an exception.

    The following examples show how to run an ALTER statement in TableEnvironment.

    Python

    ALTER statements can be executed with the execute_sql() method of the TableEnvironment. The execute_sql() method returns ‘OK’ for a successful ALTER operation, otherwise will throw an exception.

    The following examples show how to run an ALTER statement in TableEnvironment.

    ALTER statements can be executed in SQL CLI.

    The following examples show how to run an ALTER statement in SQL CLI.

    Java

    Scala

    1. val tableEnv = TableEnvironment.create(...)
    2. tableEnv.executeSql("CREATE TABLE Orders (`user` BIGINT, product STRING, amount INT) WITH (...)");
    3. // a string array: ["Orders"]
    4. val tables = tableEnv.listTables()
    5. // or tableEnv.executeSql("SHOW TABLES").print()
    6. // rename "Orders" to "NewOrders"
    7. tableEnv.executeSql("ALTER TABLE Orders RENAME TO NewOrders;")
    8. // a string array: ["NewOrders"]
    9. val tables = tableEnv.listTables()
    10. // or tableEnv.executeSql("SHOW TABLES").print()

    Python

    1. table_env = TableEnvironment.create(...)
    2. # a string array: ["Orders"]
    3. # or table_env.execute_sql("SHOW TABLES").print()
    4. # rename "Orders" to "NewOrders"
    5. table_env.execute_sql("ALTER TABLE Orders RENAME TO NewOrders;")
    6. # a string array: ["NewOrders"]
    7. tables = table_env.list_tables()
    8. # or table_env.execute_sql("SHOW TABLES").print()

    SQL CLI

    • Rename Table
    1. ALTER TABLE [catalog_name.][db_name.]table_name RENAME TO new_table_name

    Rename the given table name to another new table name.

    • Set or Alter Table Properties
    1. 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.

    Renames a given view to a new name within the same catalog and database.

    1. ALTER VIEW [catalog_name.][db_name.]view_name AS new_query_expression

    Changes the underlying query defining the given view to a new query.

      Alter a catalog function with the new identifier and optional language tag. If a function doesn’t exist in the catalog, an exception is thrown.

      If the language tag is JAVA/SCALA, the identifier is the full classpath of the UDF. For the implementation of Java/Scala UDF, please refer to for more details.

      If the language tag is PYTHON, the identifier is the fully qualified name of the UDF, e.g. pyflink.table.tests.test_udf.add. For the implementation of Python UDF, please refer to Python UDFs for more details.

      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|PYTHON