# Prepare command

The `Prepare` command creates a java.sql.PreparedStatement using the value of the specified String, accessible in `ij` by the Identifier given to it.

If a prepared statement with that name already exists in `ij`, an error will be returned, and the previous prepared statement will remain. Use the `Remove` command to remove the previous statement first. If there are any errors in preparing the statement, no prepared statement is created.

Any SQL statements allowed in the underlying connection's prepared statement can be prepared with this command.

If the Identifier specifies a connectionName, the statement is prepared on the specified connection.

## Syntax

    PREPARE Identifier AS String

## Examples

    ij> prepare seeMenu as 'SELECT * FROM menu';
    ij> execute seeMenu;
    COURSE    |ITEM                |PRICE
    -----------------------------------------------
    entree    |lamb chop           |14
    dessert   |creme brulee        |6

    2 rows selected
    ij>

    ij> connect 'jdbc:derby:firstdb;create=true';
    ij> create table firsttable (id int primary key,
        name varchar(12));
    0 rows inserted/updated/deleted
    ij> insert into firsttable values
        (10,'TEN'),(20,'TWENTY'),(30,'THIRTY');
    3 rows inserted/updated/deleted
    ij> select * from firsttable;
    ID         |NAME
    ------------------------
    10         |TEN
    20         |TWENTY
    30         |THIRTY

    3 rows selected
    ij> connect 'jdbc:derby:seconddb;create=true';
    ij(CONNECTION1)> create table newtable (newid int primary key,
        newname varchar(12));
    0 rows inserted/updated/deleted
    ij(CONNECTION1)> prepare src@connection0 as 'select * from firsttable';
    ij>

Parent topic: ij commands and errors reference
Related concepts
ij commands
ij errors
Related reference
Absolute command
After Last command
Async command
Autocommit command
Before First command
Close command
Commit command
Connect command
Describe command
Disconnect command
Driver command
Elapsedtime command
Execute command
Exit command
First command
Get Cursor command
Get Scroll Insensitive Cursor command
Help command
HoldForConnection command
Last command
LocalizedDisplay command
MaximumDisplayWidth command
Next command
NoHoldForConnection command
Previous command
Protocol command
Readonly command
Relative command
Remove command
Rollback command
Run command
Set Connection command
Show command
Wait For command
Syntax for comments in ij commands
Syntax for identifiers in ij commands
Syntax for strings in ij commands