· 8 years ago · Jul 09, 2018, 03:18 PM
1SET search_path TO ifd_test, test;
2SHOW search_path;
3CREATE SCHEMA IF NOT EXISTS test;
4
5DROP TABLE IF EXISTS esb_out_a_report;
6CREATE TABLE IF NOT EXISTS esb_out_a_report (
7 message_id SERIAL NOT NULL PRIMARY KEY,
8 operation_code INT DEFAULT NULL,
9 message_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
10 entity_id VARCHAR(250) DEFAULT NULL,
11 receiver_id INT DEFAULT NULL,
12 maintenance_flg INT NOT NULL,
13 business_data_int INT DEFAULT NULL,
14 business_data_varchar VARCHAR(250) DEFAULT NULL,
15 business_data_date DATE DEFAULT NULL
16);
17
18COMMENT ON COLUMN esb_out_a_report.message_id
19IS 'ПоÑÐ»ÐµÐ´Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ñ‚ÐµÑ…Ð½Ð¸Ñ‡ÐµÑÐºÐ°Ñ Ð½ÑƒÐ¼ÐµÑ€Ð°Ñ†Ð¸Ñ Ñообщений. ГенерируетÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки на уровне DB (автоинкремент).';
20COMMENT ON COLUMN esb_out_a_report.operation_code
21IS 'Тип операции в ÑиÑтеме-иÑточнике, заполнÑетÑÑ Ð¿Ñ€Ð¸ наличии требований. ЗаполнÑетÑÑ Ð¸Ñточником: 0 – Ð’Ñтавка, 1 – Обновление, 2 – Удаление';
22COMMENT ON COLUMN esb_out_a_report.message_dt
23IS 'Timestamp (дата и времÑ) Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½Ð¾Ð²ÐµÐ½Ð¸Ñ Ð·Ð°Ð¿Ð¸Ñи в таблице. ЗаполнÑетÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки, иÑпользуетÑÑ Ð´Ð»Ñ Ñ€Ð°ÑÑÐ»ÐµÐ´Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð½Ñ†Ð¸Ð´ÐµÐ½Ñ‚Ð¾Ð². ЗаполнÑетÑÑ Ð¸Ñточником. ЗаполнÑетÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки на уровне БД.';
24COMMENT ON COLUMN esb_out_a_report.entity_id
25IS 'ID ÑущноÑти иÑпользуемый в ÑиÑтеме. ИÑпользуетÑÑ Ð´Ð»Ñ Ñ€Ð°ÑÑÐ»ÐµÐ´Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð½Ñ†Ð¸Ð´ÐµÐ½Ñ‚Ð¾Ð². ЗаполнÑетÑÑ Ð½Ð° Ñтороне иÑточника. Ð”Ð»Ñ ÑоÑтавного ключа иÑпользуетÑÑ Ñ€Ð°Ð·Ð´ÐµÐ»Ð¸Ñ‚ÐµÐ»ÑŒ «;».';
26COMMENT ON COLUMN esb_out_a_report.receiver_id
27IS 'Содержит дополнительный признак в Ñлучае повторных и корректирующих выгрузок, указывающий, какой из потоков ÑвлÑетÑÑ Ð¿Ð¾Ð»ÑƒÑ‡Ð°Ñ‚ÐµÐ»ÐµÐ¼ Ñтих Ñообщений:
28null – вÑе потоки ÑвлÑÑŽÑ‚ÑÑ Ð¿Ð¾Ð»ÑƒÑ‡Ð°Ñ‚ÐµÐ»ÐµÐ¼ Ñтого ÑообщениÑ
29UID потока – только поток Ñ ÑоответÑтвующим UID должен оÑущеÑтвить доÑтавку. Другие потоки игнорируют Ñти ÑообщениÑ, Ð¿Ñ€Ð¾ÐºÑ€ÑƒÑ‡Ð¸Ð²Ð°Ñ Ñчетчик очереди ÑоответÑтвующим образом
30При регламентной публикации Ñообщений: СиÑтема-иÑточник заполнÑет поле значением null
31При повторной выгрузке: Шина заполнÑет поле значением UID потока Ð´Ð»Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð³Ð¾ предназначаетÑÑ Ð²Ñ‹Ð³Ñ€ÑƒÐ·ÐºÐ°, либо null, еÑли выгрузка предназначена вÑем получателÑм
32При корректирующей выгрузке:
33СиÑтема-иÑточник заполнÑет поле значением UID потока, запроÑившего корректирующую выгрузку (поле receiver_id в таблице запроÑа корректирующей выгрузки).';
34COMMENT ON COLUMN esb_out_a_report.maintenance_flg
35IS 'Флаг Ñ Ð¿Ñ€Ð¸Ð·Ð½Ð°ÐºÐ¾Ð¼ корректирующей выгрузки.:
360 – Ð ÐµÐ³Ð»Ð°Ð¼ÐµÐ½Ñ‚Ð½Ð°Ñ Ð¿ÑƒÐ±Ð»Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð¿Ð°ÐºÐµÑ‚Ð½Ñ‹Ñ… данных
371 – ÐšÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð¸Ñ€ÑƒÑŽÑ‰Ð°Ñ Ð²Ñ‹Ð³Ñ€ÑƒÐ·ÐºÐ° пакетных данных
38ЗаполнÑетÑÑ ÑиÑтемой-иÑточником';
39COMMENT ON COLUMN esb_out_a_report.business_data_int
40IS 'Ð‘Ð¸Ð·Ð½ÐµÑ Ð´Ð°Ð½Ð½Ñ‹Ðµ в формате integer';
41COMMENT ON COLUMN esb_out_a_report.business_data_varchar
42IS 'Ð‘Ð¸Ð·Ð½ÐµÑ Ð´Ð°Ð½Ð½Ñ‹Ðµ в формате varchar';
43COMMENT ON COLUMN esb_out_a_report.business_data_date
44IS 'Ð‘Ð¸Ð·Ð½ÐµÑ Ð´Ð°Ð½Ð½Ñ‹Ðµ в формате date';
45
46
47TRUNCATE TABLE esb_out_a_report; -- из ->
48
49CREATE TEMPORARY SEQUENCE IF NOT EXISTS seq
50 START 1;
51CREATE TEMPORARY SEQUENCE IF NOT EXISTS seq_2
52 INCREMENT BY 5
53 START 5;
54
55INSERT INTO esb_out_a_report(message_id,
56 entity_id,
57 maintenance_flg,
58 operation_code,
59 receiver_id,
60 business_data_date,
61 message_dt,
62 business_data_int,
63 business_data_varchar)
64SELECT seq,
65 CONCAT('id #', seq),
66 seq,
67 RANDOM() * 666,
68 NULL,
69 NOW(),
70 CURRENT_TIMESTAMP,
71 2147483647,
72 (SELECT MD5(RANDOM() :: TEXT))
73FROM generate_series(1, 500) AS seq;