Dynamic SQL

Dynamic queries give you the most flexibility in defining SQL statements.

Before proceeding to the rest of this section, see Static Parameterized SQL to understand how static parameterized queries work.

Using PSQL variables, you can substitute strings anywhere at run time. In the following example, the query SELECT id, name FROM customer ORDER BY <column name> is built dynamically using a string. The EXECUTE IMMEDIATE statement uses the string to run the query.

SET sql_mode = 'PIPES_AS_CONCAT';
DROP DATABASE IF EXISTS singlestore_docs_example;
CREATE DATABASE singlestore_docs_example;
use singlestore_docs_example;
CREATE TABLE product(id INT, description TEXT);
INSERT INTO product VALUES (1, 'white paper'), (2, 'blue pen'),
(3, 'black pen');
DELIMITER //
CREATE PROCEDURE get_product_data(col TEXT) AS
DECLARE
str TEXT;
BEGIN
str = 'ECHO SELECT id, description FROM product ORDER BY ' || col;
EXECUTE IMMEDIATE str;
END
//
DELIMITER ;
CALL get_product_data('description');

Output:

+------+-------------+
| id   | description |
+------+-------------+
|    3 | black pen   |
|    2 | blue pen    |
|    1 | white paper |
+------+-------------+

More examples of dynamic queries are shown below. These queries cannot be written as static parameterized queries because column names and table names are not constant values.

SELECT <column name> FROM location`
INSERT INTO <table name> (id) VALUES (1),(2),(3)

With dynamic queries, you’re not limited to using PSQL variables that represent column and table names. For instance, you can substitute a PSQL variable for a WHERE clause:

SELECT id, name FROM part <WHERE clause>

You can also substitute a PSQL variable for a SELECT statement:

SELECT <rest of SELECT statement>

In this section

Last modified: June 12, 2023

Was this article helpful?

Verification instructions

Note: You must install cosign to verify the authenticity of the SingleStore file.

Use the following steps to verify the authenticity of singlestoredb-server, singlestoredb-toolbox, singlestoredb-studio, and singlestore-client SingleStore files that have been downloaded.

You may perform the following steps on any computer that can run cosign, such as the main deployment host of the cluster.

  1. (Optional) Run the following command to view the associated signature files.

    curl undefined
  2. Download the signature file from the SingleStore release server.

    • Option 1: Click the Download Signature button next to the SingleStore file.

    • Option 2: Copy and paste the following URL into the address bar of your browser and save the signature file.

    • Option 3: Run the following command to download the signature file.

      curl -O undefined
  3. After the signature file has been downloaded, run the following command to verify the authenticity of the SingleStore file.

    echo -n undefined |
    cosign verify-blob --certificate-oidc-issuer https://oidc.eks.us-east-1.amazonaws.com/id/CCDCDBA1379A5596AB5B2E46DCA385BC \
    --certificate-identity https://kubernetes.io/namespaces/freya-production/serviceaccounts/job-worker \
    --bundle undefined \
    --new-bundle-format -
    Verified OK