The terminal waits for your command. You type sqlplus and the cursor blinks back, ready to connect. You are here to control data, not just read it. The focus is on a single word: IDENTITY.
In Oracle, an identity column lets you generate unique values automatically for a row. No sequence objects to manage. No manual loops. When paired with SQL*Plus, you get a direct, fast way to test, verify, and deploy changes.
Understanding Identity Columns in SQL*Plus
Identity columns were introduced to reduce boilerplate in table creation. You define them when creating a table, and Oracle handles the increment:
CREATE TABLE users (
id NUMBER GENERATED ALWAYS AS IDENTITY,
username VARCHAR2(50) NOT NULL
);
When using SQL*Plus, run CREATE TABLE commands directly after connecting:
sqlplus user/password@host:port/service
Once connected, executing the statement above builds the table with an identity column. Each new row gets its id automatically.
Controlling the Identity Behavior
Two main modes exist:
- GENERATED ALWAYS AS IDENTITY: Oracle assigns the value; you cannot override it.
- GENERATED BY DEFAULT AS IDENTITY: Oracle assigns the value if you do not provide one.
Add parameters for starting value, increment, and caching:
CREATE TABLE orders (
order_id NUMBER GENERATED BY DEFAULT AS IDENTITY
START WITH 1000 INCREMENT BY 1 CACHE 20,
product_code VARCHAR2(20)
);
In SQL*Plus, this syntax is identical—no changes are needed.
Why Use Identity in SQL*Plus?
- Simplicity: No separate sequence creation.
- Performance: Cached identity values reduce disk access.
- Consistency: IDs remain unique without extra checks.
When running scripts through SQL*Plus, identity columns make migrations cleaner and more predictable. You can keep scripts minimal and focus on logic.
Checking Identity Settings
In SQL*Plus, you can query USER_TAB_COLS and USER_IDENT_COLUMNS to confirm identity definitions:
SELECT table_name, column_name, generation_type
FROM user_ident_columns;
This verifies your schema without logging into GUI tools.
Deployment Strategy
For production, keep identity creation in your migration files. Test them in SQL*Plus first. Automate these runs in CI/CD pipelines to catch errors early. The less manual intervention, the better.
Clear definitions and controlled increments make identity columns in SQL*Plus a reliable choice for scalable systems. Precise commands. Direct results.
Run it on hoop.dev and see it live in minutes.