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 + -
显示快捷键?