Skip to content

table.index.identiry #2

@benbechiraziz212-maker

Description

@benbechiraziz212-maker

Voici le script réorganisé. J'ai placé les commandes ALTER TABLE ... RESTART WITH (qui réinitialisent les compteurs IDENTITY) immédiatement après chaque CREATE TABLE correspondant.

J'ai également groupé les CREATE INDEX juste après leur table respective pour rendre le script plus modulaire et facile à maintenir.

-- ==========================================
-- TABLE: HISTORY
-- ==========================================
CREATE CACHED TABLE PUBLIC.HISTORY(
    HISTORYID INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 1) NOT NULL PRIMARY KEY,
    SESSIONID BIGINT NOT NULL,
    HISTTYPE INTEGER DEFAULT 1,
    STATUSCODE INTEGER DEFAULT 0,
    TIMESENTMILLIS BIGINT DEFAULT 0,
    TIMEELAPSEDMILLIS INTEGER DEFAULT 0,
    METHOD VARCHAR(1024) DEFAULT '',
    URI VARCHAR(1048576) DEFAULT '',
    REQHEADER VARCHAR(4194304) DEFAULT '',
    REQBODY VARBINARY(16777216) DEFAULT X'',
    RESHEADER VARCHAR(4194304) DEFAULT '',
    RESBODY VARBINARY(16777216) DEFAULT X'',
    TAG VARCHAR(32768) DEFAULT '',
    NOTE VARCHAR(1048576) DEFAULT '',
    RESPONSEFROMTARGETHOST BOOLEAN DEFAULT FALSE
);
-- Réinitialisation de l'identité juste après la création
ALTER TABLE PUBLIC.HISTORY ALTER COLUMN HISTORYID RESTART WITH 1;

-- Index pour HISTORY
CREATE INDEX HISTORY_INDEX ON PUBLIC.HISTORY(URI, METHOD, REQBODY, SESSIONID, HISTTYPE, HISTORYID, STATUSCODE);
CREATE INDEX INDEX_HISTORY_HISTTYPE ON PUBLIC.HISTORY(HISTTYPE);
CREATE INDEX INDEX_HISTORY_SESSIONID ON PUBLIC.HISTORY(SESSIONID);


-- ==========================================
-- TABLE: SESSION
-- ==========================================
CREATE CACHED TABLE PUBLIC.SESSION(
    SESSIONID BIGINT NOT NULL PRIMARY KEY,
    SESSIONNAME VARCHAR(32768) DEFAULT '',
    LASTACCESS TIMESTAMP DEFAULT LOCALTIMESTAMP NOT NULL
);
-- Pas de colonne IDENTITY à réinitialiser pour cette table


-- ==========================================
-- TABLE: ALERT
-- ==========================================
CREATE CACHED TABLE PUBLIC.ALERT(
    ALERTID INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,
    SCANID INTEGER NOT NULL,
    PLUGINID INTEGER DEFAULT 0,
    ALERT VARCHAR(16777216) DEFAULT '',
    RISK INTEGER DEFAULT 0,
    RELIABILITY INTEGER DEFAULT 1,
    DESCRIPTION VARCHAR(16777216) DEFAULT '',
    URI VARCHAR(1048576) DEFAULT '',
    PARAM VARCHAR(32768) DEFAULT '',
    OTHERINFO VARCHAR(16777216) DEFAULT '',
    SOLUTION VARCHAR(16777216) DEFAULT '',
    REFERENCE VARCHAR(16777216) DEFAULT '',
    HISTORYID INTEGER,
    SOURCEHISTORYID INTEGER DEFAULT 0,
    ATTACK VARCHAR(32768) DEFAULT '',
    EVIDENCE VARCHAR(16777216) DEFAULT '',
    CWEID INTEGER DEFAULT -1,
    WASCID INTEGER DEFAULT -1,
    SOURCEID INTEGER DEFAULT 0,
    INPUT_VECTOR VARCHAR(256) DEFAULT '',
    NODENAME VARCHAR(1048576) DEFAULT NULL
);
-- Réinitialisation de l'identité juste après la création
ALTER TABLE PUBLIC.ALERT ALTER COLUMN ALERTID RESTART WITH 0;

-- Index pour ALERT
CREATE INDEX ALERT_INDEX ON PUBLIC.ALERT(SOURCEHISTORYID);
CREATE INDEX INDEX_ALERT_SOURCEID ON PUBLIC.ALERT(SOURCEID);


-- ==========================================
-- TABLE: SCAN
-- ==========================================
CREATE CACHED TABLE PUBLIC.SCAN(
    SCANID INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,
    SESSIONID BIGINT NOT NULL,
    SCANNAME VARCHAR(32768) DEFAULT '',
    SCANTIME TIMESTAMP DEFAULT LOCALTIMESTAMP NOT NULL
);
-- Réinitialisation de l'identité juste après la création
ALTER TABLE PUBLIC.SCAN ALTER COLUMN SCANID RESTART WITH 0;


-- ==========================================
-- TABLE: CONTEXT_DATA
-- ==========================================
CREATE CACHED TABLE PUBLIC.CONTEXT_DATA (
    DATAID BIGINT GENERATED BY DEFAULT AS IDENTITY (START WITH 1),
    CONTEXTID INTEGER NOT NULL,
    TYPE INTEGER NOT NULL,
    DATA VARCHAR(1048576) DEFAULT ''
);
-- Index pour CONTEXT_DATA
CREATE INDEX INDEX_CONTEXT_DATA_CONTEXTID ON PUBLIC.CONTEXT_DATA(CONTEXTID);
CREATE INDEX INDEX_CONTEXT_DATA_TYPE ON PUBLIC.CONTEXT_DATA(TYPE);


-- ==========================================
-- TABLE: PARAM
-- ==========================================
CREATE CACHED TABLE PUBLIC.PARAM (
    PARAMID BIGINT GENERATED BY DEFAULT AS IDENTITY (START WITH 1),
    SITE VARCHAR(32768) NOT NULL,
    TYPE VARCHAR(32768) NOT NULL,
    NAME VARCHAR(32768) NOT NULL,
    USED INTEGER NOT NULL,
    FLAGS VARCHAR(32768) NOT NULL,
    VALS VARCHAR(8388608) NOT NULL
);


-- ==========================================
-- TABLE: SESSION_URL
-- ==========================================
CREATE CACHED TABLE PUBLIC.SESSION_URL (
    URLID BIGINT GENERATED BY DEFAULT AS IDENTITY (START WITH 1),
    TYPE INTEGER NOT NULL,
    URL VARCHAR(8192) DEFAULT ''
);
-- Index pour SESSION_URL
CREATE INDEX INDEX_SESSION_URL_TYPE_AND_URL ON PUBLIC.SESSION_URL(TYPE, URL);


-- ==========================================
-- TABLE: TAG
-- ==========================================
CREATE CACHED TABLE PUBLIC.TAG (
    TAGID BIGINT GENERATED BY DEFAULT AS IDENTITY (START WITH 1),
    HISTORYID BIGINT NOT NULL,
    TAG VARCHAR(1024) DEFAULT ''
);
-- Index pour TAG
CREATE INDEX INDEX_TAG_HISTORYID_TAG ON PUBLIC.TAG(HISTORYID, TAG);


-- ==========================================
-- SYSTEM SEQUENCES
-- ==========================================
ALTER SEQUENCE SYSTEM_LOBS.LOB_ID RESTART WITH 1;

Changes Made / Modifications Apportées :

  1. Identity Reset Moved / Déplacement des Reset Identity : Les commandes ALTER TABLE ... RESTART WITH sont maintenant collées juste sous leur CREATE TABLE. Cela garantit que si vous copiez-collez un bloc de table, la logique de compteur suit.
  2. Indexes Grouped / Index Groupés : Les CREATE INDEX sont placés immédiatement après la table qu'ils indexent.
  3. Comments / Commentaires : Ajout de séparateurs pour une meilleure lisibilité.

This structure is much safer for modular deployment or migration scripts.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions