PDF (US Ltr)
- 1.2Mb
PDF (A4)
- 1.2Mb
In addition to the simplified X DevAPI syntax of the Session
object, the Session object has a sql()
function
that takes any SQL statement as a string.
The following example uses a Session to call an SQL Stored Procedure on the specific node.
Press CTRL+C to copyfrom mysqlsh import mysqlx # Connect to server using a Session mySession = mysqlx.get_session('user:password@localhost') # Switch to use schema 'test' mySession.sql("USE test").execute() # In a Session context the full SQL language can be used sql = """CREATE PROCEDURE my_add_one_procedure (INOUT incr_param INT) BEGIN SET incr_param = incr_param + 1; END """ mySession.sql(sql).execute() mySession.sql("SET @my_var = ?").bind(10).execute() mySession.sql("CALL my_add_one_procedure(@my_var)").execute() mySession.sql("DROP PROCEDURE my_add_one_procedure").execute() # Use an SQL query to get the result myResult = mySession.sql("SELECT @my_var").execute() # Gets the row and prints the first column row = myResult.fetch_one() print(row[0]) mySession.close()
When using literal/verbatim SQL the common API patterns are mostly the same compared to using DML and CRUD operations on Tables and Collections. Two differences exist: setting the current schema and escaping names.