USE 语句

USE 语句用来设置当前的 catalog 或者 database。

运行一个 USE 语句

可以使用 TableEnvironment 中的 executeSql() 方法执行 USE 语句,也可以在 SQL CLI 中执行 USE 语句。 若 USE 操作执行成功,executeSql() 方法返回 ‘OK’,否则会抛出异常。

以下的例子展示了如何在 TableEnvironment 和 SQL CLI 中执行一个 USE 语句。

  1. StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
  2. StreamTableEnvironment tEnv = StreamTableEnvironment.create(env);
  3. // create a catalog
  4. tEnv.executeSql("CREATE CATALOG cat1 WITH (...)");
  5. tEnv.executeSql("SHOW CATALOGS").print();
  6. // +-----------------+
  7. // | catalog name |
  8. // +-----------------+
  9. // | default_catalog |
  10. // | cat1 |
  11. // +-----------------+
  12. // change default catalog
  13. tEnv.executeSql("USE CATALOG cat1");
  14. tEnv.executeSql("SHOW DATABASES").print();
  15. // databases are empty
  16. // +---------------+
  17. // | database name |
  18. // +---------------+
  19. // +---------------+
  20. // create a database
  21. tEnv.executeSql("CREATE DATABASE db1 WITH (...)");
  22. tEnv.executeSql("SHOW DATABASES").print();
  23. // +---------------+
  24. // | database name |
  25. // +---------------+
  26. // | db1 |
  27. // +---------------+
  28. // change default database
  29. tEnv.executeSql("USE db1");
  1. val env = StreamExecutionEnvironment.getExecutionEnvironment()
  2. val tEnv = StreamTableEnvironment.create(env)
  3. // create a catalog
  4. tEnv.executeSql("CREATE CATALOG cat1 WITH (...)")
  5. tEnv.executeSql("SHOW CATALOGS").print()
  6. // +-----------------+
  7. // | catalog name |
  8. // +-----------------+
  9. // | default_catalog |
  10. // | cat1 |
  11. // +-----------------+
  12. // change default catalog
  13. tEnv.executeSql("USE CATALOG cat1")
  14. tEnv.executeSql("SHOW DATABASES").print()
  15. // databases are empty
  16. // +---------------+
  17. // | database name |
  18. // +---------------+
  19. // +---------------+
  20. // create a database
  21. tEnv.executeSql("CREATE DATABASE db1 WITH (...)")
  22. tEnv.executeSql("SHOW DATABASES").print()
  23. // +---------------+
  24. // | database name |
  25. // +---------------+
  26. // | db1 |
  27. // +---------------+
  28. // change default database
  29. tEnv.executeSql("USE db1")
  1. settings = EnvironmentSettings.new_instance()...
  2. table_env = StreamTableEnvironment.create(env, settings)
  3. # create a catalog
  4. table_env.execute_sql("CREATE CATALOG cat1 WITH (...)")
  5. table_env.execute_sql("SHOW CATALOGS").print()
  6. # +-----------------+
  7. # | catalog name |
  8. # +-----------------+
  9. # | default_catalog |
  10. # | cat1 |
  11. # +-----------------+
  12. # change default catalog
  13. table_env.execute_sql("USE CATALOG cat1")
  14. table_env.execute_sql("SHOW DATABASES").print()
  15. # databases are empty
  16. # +---------------+
  17. # | database name |
  18. # +---------------+
  19. # +---------------+
  20. # create a database
  21. table_env.execute_sql("CREATE DATABASE db1 WITH (...)")
  22. table_env.execute_sql("SHOW DATABASES").print()
  23. # +---------------+
  24. # | database name |
  25. # +---------------+
  26. # | db1 |
  27. # +---------------+
  28. # change default database
  29. table_env.execute_sql("USE db1")
  1. Flink SQL> CREATE CATALOG cat1 WITH (...);
  2. [INFO] Catalog has been created.
  3. Flink SQL> SHOW CATALOGS;
  4. default_catalog
  5. cat1
  6. Flink SQL> USE CATALOG cat1;
  7. Flink SQL> SHOW DATABASES;
  8. Flink SQL> CREATE DATABASE db1 WITH (...);
  9. [INFO] Database has been created.
  10. Flink SQL> SHOW DATABASES;
  11. db1
  12. Flink SQL> USE db1;

USE CATLOAG

  1. USE CATALOG catalog_name

设置当前的 catalog。所有后续命令未显式指定 catalog 的将使用此 catalog。如果指定的的 catalog 不存在,则抛出异常。默认的当前 catalog 是 default_catalog

USE

  1. USE [catalog_name.]database_name

设置当前的 database。所有后续命令未显式指定 database 的将使用此 database。如果指定的的 database 不存在,则抛出异常。默认的当前 database 是 default_database