Skip to content

PreparedStatement

The PreparedStatement resource allows you to manage AWS Athena PreparedStatements for executing SQL queries with predefined parameters in a specified workgroup.

Minimal Example

Create a basic prepared statement with required properties and a description:

ts
import AWS from "alchemy/aws/control";

const preparedStatement = await AWS.Athena.PreparedStatement("basicPreparedStatement", {
  StatementName: "GetUserDetails",
  WorkGroup: "primary",
  Description: "A prepared statement for fetching user details",
  QueryStatement: "SELECT * FROM users WHERE user_id = ?"
});

Advanced Configuration

Create a prepared statement with additional properties such as adopting an existing resource:

ts
const advancedPreparedStatement = await AWS.Athena.PreparedStatement("advancedPreparedStatement", {
  StatementName: "FetchOrders",
  WorkGroup: "analytics",
  Description: "A prepared statement for fetching order details",
  QueryStatement: "SELECT * FROM orders WHERE status = ?",
  adopt: true
});

Using Prepared Statements in Queries

You can utilize prepared statements in your SQL queries by binding parameters:

ts
const userId = 12345;
const userQueryExecution = await AWS.Athena.StartQueryExecution("userQueryExecution", {
  QueryString: "EXECUTE GetUserDetails USING ?",
  QueryExecutionContext: {
    Database: "user_database"
  },
  WorkGroup: "primary",
  Parameters: [userId]
});

Updating a Prepared Statement

You can also update an existing prepared statement if needed:

ts
const updatedPreparedStatement = await AWS.Athena.PreparedStatement("updatedPreparedStatement", {
  StatementName: "GetUserDetails",
  WorkGroup: "primary",
  Description: "Updated prepared statement for fetching user details",
  QueryStatement: "SELECT * FROM users WHERE user_email = ?",
  adopt: true
});