X DevAPI 用户指南 / 第 2 章连接和会话概念 /
2.6 动态SQL
存在一个引用函数来转义 SQL 名称和标识符。
Session.quoteName()
根据当前连接的设置转义给出的标识符。
笔记
引用函数不得用于转义值。改为使用值绑定语法Session.sql()
;有关示例,请参见第 2.4 节“将 SQL 与会话一起使用”。
def createTestTable(session, name):
# use escape function to quote names/identifier
quoted_name = session.quote_name(name)
session.sql("DROP TABLE IF EXISTS " + quoted_name).execute()
create = "CREATE TABLE "
create += quoted_name
create += " (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT)"
session.sql(create).execute()
return session.get_current_schema().get_table(name)
from mysqlsh import mysqlx
session = mysqlx.get_session('user:password@localhost:33060/test')
default_schema = session.get_default_schema().name
session.set_current_schema(default_schema)
# Creates some tables
table1 = createTestTable(session, 'test1')
table2 = createTestTable(session, 'test2')
使用 X DevAPI 的代码不需要转义标识符。这适用于处理集合和处理关系表。