2026-03-12 21:01:38
This commit is contained in:
83
Golden_Gate/example_01/cr_tables.sql
Normal file
83
Golden_Gate/example_01/cr_tables.sql
Normal file
@@ -0,0 +1,83 @@
|
||||
-- Create sequences for primary key generation
|
||||
CREATE SEQUENCE seq_products START WITH 1 INCREMENT BY 1;
|
||||
CREATE SEQUENCE seq_orders START WITH 1 INCREMENT BY 1;
|
||||
CREATE SEQUENCE seq_users START WITH 1 INCREMENT BY 1;
|
||||
CREATE SEQUENCE seq_transactions START WITH 1 INCREMENT BY 1;
|
||||
CREATE SEQUENCE seq_tasks START WITH 1 INCREMENT BY 1;
|
||||
|
||||
-- Create tables with meaningful names and relevant columns
|
||||
CREATE TABLE products (
|
||||
id NUMBER PRIMARY KEY,
|
||||
name VARCHAR2(100),
|
||||
category VARCHAR2(20),
|
||||
quantity INTEGER
|
||||
);
|
||||
|
||||
CREATE TABLE orders (
|
||||
id NUMBER PRIMARY KEY,
|
||||
description VARCHAR2(255),
|
||||
status VARCHAR2(20)
|
||||
);
|
||||
|
||||
CREATE TABLE users (
|
||||
id NUMBER PRIMARY KEY,
|
||||
created_at DATE DEFAULT SYSDATE,
|
||||
username VARCHAR2(20),
|
||||
age INTEGER,
|
||||
location VARCHAR2(20)
|
||||
);
|
||||
|
||||
CREATE TABLE transactions (
|
||||
id NUMBER PRIMARY KEY,
|
||||
amount NUMBER(10,2),
|
||||
currency VARCHAR2(20)
|
||||
);
|
||||
|
||||
CREATE TABLE tasks (
|
||||
id NUMBER PRIMARY KEY,
|
||||
status VARCHAR2(50),
|
||||
priority INTEGER,
|
||||
type VARCHAR2(20),
|
||||
assigned_to VARCHAR2(20)
|
||||
);
|
||||
|
||||
-- Create triggers to auto-generate primary key values using sequences
|
||||
CREATE OR REPLACE TRIGGER trg_products_pk
|
||||
BEFORE INSERT ON products
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SELECT seq_products.NEXTVAL INTO :NEW.id FROM dual;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE TRIGGER trg_orders_pk
|
||||
BEFORE INSERT ON orders
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SELECT seq_orders.NEXTVAL INTO :NEW.id FROM dual;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE TRIGGER trg_users_pk
|
||||
BEFORE INSERT ON users
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SELECT seq_users.NEXTVAL INTO :NEW.id FROM dual;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE TRIGGER trg_transactions_pk
|
||||
BEFORE INSERT ON transactions
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SELECT seq_transactions.NEXTVAL INTO :NEW.id FROM dual;
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE OR REPLACE TRIGGER trg_tasks_pk
|
||||
BEFORE INSERT ON tasks
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SELECT seq_tasks.NEXTVAL INTO :NEW.id FROM dual;
|
||||
END;
|
||||
/
|
||||
Reference in New Issue
Block a user