tables.sql

来自「php 开发的内容管理系统」· SQL 代码 · 共 421 行 · 第 1/2 页

SQL
421
字号
  img_timestamp    TIMESTAMPTZ);CREATE INDEX img_size_idx      ON image (img_size);CREATE INDEX img_timestamp_idx ON image (img_timestamp);CREATE TABLE oldimage (  oi_name          TEXT         NOT NULL  REFERENCES image(img_name),  oi_archive_name  TEXT         NOT NULL,  oi_size          SMALLINT     NOT NULL,  oi_width         SMALLINT     NOT NULL,  oi_height        SMALLINT     NOT NULL,  oi_bits          SMALLINT     NOT NULL,  oi_description   TEXT,  oi_user          INTEGER          NULL  REFERENCES "user"(user_id) ON DELETE SET NULL,  oi_user_text     TEXT         NOT NULL,  oi_timestamp     TIMESTAMPTZ  NOT NULL);CREATE INDEX oi_name ON oldimage (oi_name);CREATE TABLE filearchive (  fa_id                 SERIAL       NOT NULL  PRIMARY KEY,  fa_name               TEXT         NOT NULL,  fa_archive_name       TEXT,  fa_storage_group      VARCHAR(16),  fa_storage_key        CHAR(64),  fa_deleted_user       INTEGER          NULL  REFERENCES "user"(user_id) ON DELETE SET NULL,  fa_deleted_timestamp  TIMESTAMPTZ  NOT NULL,  fa_deleted_reason     TEXT,  fa_size               SMALLINT     NOT NULL,  fa_width              SMALLINT     NOT NULL,  fa_height             SMALLINT     NOT NULL,  fa_metadata           TEXT,  fa_bits               SMALLINT,  fa_media_type         TEXT,  fa_major_mime         TEXT                   DEFAULT 'unknown',  fa_minor_mime         TEXT                   DEFAULT 'unknown',  fa_description        TEXT         NOT NULL,  fa_user               INTEGER          NULL  REFERENCES "user"(user_id) ON DELETE SET NULL,  fa_user_text          TEXT         NOT NULL,  fa_timestamp          TIMESTAMPTZ);CREATE INDEX fa_name_time ON filearchive (fa_name, fa_timestamp);CREATE INDEX fa_dupe      ON filearchive (fa_storage_group, fa_storage_key);CREATE INDEX fa_notime    ON filearchive (fa_deleted_timestamp);CREATE INDEX fa_nouser    ON filearchive (fa_deleted_user);CREATE SEQUENCE rc_rc_id_seq;CREATE TABLE recentchanges (  rc_id              INTEGER      NOT NULL  PRIMARY KEY DEFAULT nextval('rc_rc_id_seq'),  rc_timestamp       TIMESTAMPTZ  NOT NULL,  rc_cur_time        TIMESTAMPTZ  NOT NULL,  rc_user            INTEGER          NULL  REFERENCES "user"(user_id) ON DELETE SET NULL,  rc_user_text       TEXT         NOT NULL,  rc_namespace       SMALLINT     NOT NULL,  rc_title           TEXT         NOT NULL,  rc_comment         TEXT,  rc_minor           CHAR         NOT NULL  DEFAULT '0',  rc_bot             CHAR         NOT NULL  DEFAULT '0',  rc_new             CHAR         NOT NULL  DEFAULT '0',  rc_cur_id          INTEGER      NOT NULL  REFERENCES page(page_id),  rc_this_oldid      INTEGER      NOT NULL,  rc_last_oldid      INTEGER      NOT NULL,  rc_type            CHAR         NOT NULL  DEFAULT '0',  rc_moved_to_ns     SMALLINT,  rc_moved_to_title  TEXT,  rc_patrolled       CHAR         NOT NULL  DEFAULT '0',  rc_ip              CIDR);CREATE INDEX rc_timestamp       ON recentchanges (rc_timestamp);CREATE INDEX rc_namespace_title ON recentchanges (rc_namespace, rc_title);CREATE INDEX rc_cur_id          ON recentchanges (rc_cur_id);CREATE INDEX new_name_timestamp ON recentchanges (rc_new, rc_namespace, rc_timestamp);CREATE INDEX rc_ip              ON recentchanges (rc_ip);CREATE TABLE watchlist (  wl_user                   INTEGER     NOT NULL  REFERENCES "user"(user_id) ON DELETE CASCADE,  wl_namespace              SMALLINT    NOT NULL  DEFAULT 0,  wl_title                  TEXT        NOT NULL,  wl_notificationtimestamp  TIMESTAMPTZ);CREATE UNIQUE INDEX wl_user_namespace_title ON watchlist (wl_namespace, wl_title, wl_user);CREATE TABLE math (  math_inputhash              TEXT      NOT NULL  UNIQUE,  math_outputhash             TEXT      NOT NULL,  math_html_conservativeness  SMALLINT  NOT NULL,  math_html                   TEXT,  math_mathml                 TEXT);CREATE TABLE interwiki (  iw_prefix  TEXT  NOT NULL  UNIQUE,  iw_url     TEXT  NOT NULL,  iw_local   CHAR  NOT NULL,  iw_trans   CHAR  NOT NULL  DEFAULT '0');CREATE TABLE querycache (  qc_type       TEXT      NOT NULL,  qc_value      SMALLINT  NOT NULL,  qc_namespace  SMALLINT  NOT NULL,  qc_title      TEXT      NOT NULL);CREATE INDEX querycache_type_value ON querycache (qc_type, qc_value);CREATE TABLE querycache_info (  qci_type       TEXT              UNIQUE,  qci_timestamp  TIMESTAMPTZ NULL);CREATE TABLE objectcache (  keyname  CHAR(255)              UNIQUE,  value    BYTEA        NOT NULL  DEFAULT '',  exptime  TIMESTAMPTZ  NOT NULL);CREATE INDEX objectcacache_exptime ON objectcache (exptime);CREATE TABLE transcache (  tc_url       TEXT         NOT NULL  UNIQUE,  tc_contents  TEXT         NOT NULL,  tc_time      TIMESTAMPTZ  NOT NULL);CREATE TABLE logging (  log_type        TEXT         NOT NULL,  log_action      TEXT         NOT NULL,  log_timestamp   TIMESTAMPTZ  NOT NULL,  log_user        INTEGER                REFERENCES "user"(user_id) ON DELETE SET NULL,  log_namespace   SMALLINT     NOT NULL,  log_title       TEXT         NOT NULL,  log_comment     TEXT,  log_params      TEXT);CREATE INDEX logging_type_name ON logging (log_type, log_timestamp);CREATE INDEX logging_user_time ON logging (log_timestamp, log_user);CREATE INDEX logging_page_time ON logging (log_namespace, log_title, log_timestamp);CREATE TABLE trackbacks (  tb_id     SERIAL   NOT NULL  PRIMARY KEY,  tb_page   INTEGER            REFERENCES page(page_id) ON DELETE CASCADE,  tb_title  TEXT     NOT NULL,  tb_url    TEXT     NOT NULL,  tb_ex     TEXT,  tb_name   TEXT);CREATE INDEX trackback_page ON trackbacks (tb_page);CREATE SEQUENCE job_job_id_seq;CREATE TABLE job (  job_id         INTEGER   NOT NULL  PRIMARY KEY DEFAULT nextval('job_job_id_seq'),  job_cmd        TEXT      NOT NULL,  job_namespace  SMALLINT  NOT NULL,  job_title      TEXT      NOT NULL,  job_params     TEXT      NOT NULL);CREATE INDEX job_cmd_namespace_title ON job (job_cmd, job_namespace, job_title);-- Tsearch2 2 stuff. Will fail if we don't have proper access to the tsearch2 tablesALTER TABLE page ADD titlevector tsvector;CREATE INDEX ts2_page_title ON page USING gist(titlevector);CREATE FUNCTION ts2_page_title() RETURNS TRIGGER LANGUAGE plpgsql AS$mw$BEGINIF TG_OP = 'INSERT' THEN  NEW.titlevector = to_tsvector(NEW.page_title);ELSIF NEW.page_title != OLD.page_title THEN  NEW.titlevector := to_tsvector(NEW.page_title);END IF;RETURN NEW;END;$mw$;CREATE TRIGGER ts2_page_title BEFORE INSERT OR UPDATE ON pageFOR EACH ROW EXECUTE PROCEDURE ts2_page_title();ALTER TABLE text ADD textvector tsvector;CREATE INDEX ts2_page_text ON text USING gist(textvector);CREATE FUNCTION ts2_page_text() RETURNS TRIGGER LANGUAGE plpgsql AS$mw$BEGINIF TG_OP = 'INSERT' THEN  NEW.textvector = to_tsvector(NEW.old_text);ELSIF NEW.old_text != OLD.old_text THEN  NEW.textvector := to_tsvector(NEW.old_text);END IF;RETURN NEW;END;$mw$;CREATE TRIGGER ts2_page_text BEFORE INSERT OR UPDATE ON textFOR EACH ROW EXECUTE PROCEDURE ts2_page_text();CREATE OR REPLACE FUNCTION add_interwiki (TEXT,INT,CHAR) RETURNS INT LANGUAGE SQL AS$mw$  INSERT INTO interwiki (iw_prefix, iw_url, iw_local) VALUES ($1,$2,$3);  SELECT 1;$mw$;COMMIT;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?