ai-memory-backend / memory /create_oracle_memories_table.sql
Baida07's picture
sync: 171 files from Baida98/AI [deploy-all]
24480a0 verified
Raw
History Blame Contribute Delete
964 Bytes
-- backend/memory/create_oracle_memories_table.sql
-- Run once on the Oracle instance (Oracle 12c+ required for FETCH NEXT syntax).
--
-- Changes vs prototype:
-- + INDEX on user_id to avoid full-scan on every list_memories() call.
-- + NVARCHAR2 / NCLOB commented out as alternatives for multi-byte content.
CREATE TABLE memories (
user_id VARCHAR2(255) NOT NULL,
memory_id VARCHAR2(36) NOT NULL, -- UUID format (36 chars)
data CLOB,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
CONSTRAINT pk_memories PRIMARY KEY (user_id, memory_id)
);
-- Speeds up list_memories() WHERE user_id = :x (avoids PK full-scan)
CREATE INDEX idx_memories_user ON memories (user_id);
-- Auto-update updated_at on every UPDATE
CREATE OR REPLACE TRIGGER trg_memories_updated_at
BEFORE UPDATE ON memories
FOR EACH ROW
BEGIN
:NEW.updated_at := CURRENT_TIMESTAMP;
END;
/