Spec-Zone.ru › MySQL Connectors 1.0

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, не нуждается в экранировании идентификаторов. Это верно для работы с коллекциями и для работы с реляционными таблицами.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/x-devapi-userguide-shell-python-en/dynamic-sql.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API