Criação de migrations para criar tabelas do flash de vendas.
This commit is contained in:
@@ -0,0 +1,111 @@
|
||||
-- +goose Up
|
||||
-- +goose StatementBegin
|
||||
DECLARE
|
||||
v_count NUMBER;
|
||||
BEGIN
|
||||
SELECT COUNT(*) INTO v_count FROM user_tables WHERE table_name = 'TB_FLASH_FATO_VENDA';
|
||||
IF v_count = 0 THEN
|
||||
EXECUTE IMMEDIATE '
|
||||
CREATE TABLE TB_FLASH_FATO_VENDA (
|
||||
ID_FATO NUMBER NOT NULL,
|
||||
DATA_REFERENCIA DATE NOT NULL,
|
||||
ANO_REFERENCIA NUMBER(4) NOT NULL,
|
||||
MES_REFERENCIA NUMBER(2) NOT NULL,
|
||||
DIA_REFERENCIA NUMBER(2),
|
||||
DIA_SEMANA NUMBER(2),
|
||||
ID_NODO NUMBER NOT NULL,
|
||||
ID_NODO_EMPRESA NUMBER NOT NULL,
|
||||
COD_EMPRESA NUMBER NOT NULL,
|
||||
NOME_EMPRESA VARCHAR2(200),
|
||||
COD_PRODUTO NUMBER NOT NULL,
|
||||
DESCRICAO_PRODUTO VARCHAR2(300),
|
||||
SEQPRODUTOBASE NUMBER,
|
||||
NRODIVISAO NUMBER,
|
||||
NROSEGMENTO NUMBER,
|
||||
NRO_TICKETS NUMBER(18,6),
|
||||
VLR_IMP_VENDA NUMBER(18,6),
|
||||
QTDE_VENDA NUMBER(18,6),
|
||||
VLR_VENDA NUMBER(18,6),
|
||||
VL_TICKET_MEDIO NUMBER(18,6),
|
||||
PROPQTDPRODUTOBASE NUMBER(18,6),
|
||||
DATA_CADASTRO DATE DEFAULT SYSDATE NOT NULL,
|
||||
CONSTRAINT PK_TB_FLASH_FATO_VENDA PRIMARY KEY (ID_FATO),
|
||||
CONSTRAINT FK_TB_FLASH_FATO_VENDA_NODO FOREIGN KEY (ID_NODO) REFERENCES TB_FLASH_NODO (ID_NODO),
|
||||
CONSTRAINT FK_TB_FLASH_FATO_VENDA_EMP FOREIGN KEY (ID_NODO_EMPRESA) REFERENCES TB_FLASH_NODO (ID_NODO),
|
||||
CONSTRAINT CK_TB_FLASH_FATO_VENDA_MES CHECK (MES_REFERENCIA BETWEEN 1 AND 12)
|
||||
)';
|
||||
END IF;
|
||||
END;
|
||||
-- +goose StatementEnd
|
||||
-- +goose StatementBegin
|
||||
DECLARE
|
||||
v_count NUMBER;
|
||||
BEGIN
|
||||
SELECT COUNT(*) INTO v_count FROM user_indexes WHERE index_name = 'IX_TB_FLASH_FATO_VENDA_DATA';
|
||||
IF v_count = 0 THEN
|
||||
EXECUTE IMMEDIATE 'CREATE INDEX IX_TB_FLASH_FATO_VENDA_DATA ON TB_FLASH_FATO_VENDA (DATA_REFERENCIA)';
|
||||
END IF;
|
||||
END;
|
||||
-- +goose StatementEnd
|
||||
-- +goose StatementBegin
|
||||
DECLARE
|
||||
v_count NUMBER;
|
||||
BEGIN
|
||||
SELECT COUNT(*) INTO v_count FROM user_indexes WHERE index_name = 'IX_TB_FLASH_FATO_VENDA_ANOMES';
|
||||
IF v_count = 0 THEN
|
||||
EXECUTE IMMEDIATE 'CREATE INDEX IX_TB_FLASH_FATO_VENDA_ANOMES ON TB_FLASH_FATO_VENDA (ANO_REFERENCIA, MES_REFERENCIA)';
|
||||
END IF;
|
||||
END;
|
||||
-- +goose StatementEnd
|
||||
-- +goose StatementBegin
|
||||
DECLARE
|
||||
v_count NUMBER;
|
||||
BEGIN
|
||||
SELECT COUNT(*) INTO v_count FROM user_indexes WHERE index_name = 'IX_TB_FLASH_FATO_VENDA_NODO';
|
||||
IF v_count = 0 THEN
|
||||
EXECUTE IMMEDIATE 'CREATE INDEX IX_TB_FLASH_FATO_VENDA_NODO ON TB_FLASH_FATO_VENDA (ID_NODO)';
|
||||
END IF;
|
||||
END;
|
||||
-- +goose StatementEnd
|
||||
-- +goose StatementBegin
|
||||
DECLARE
|
||||
v_count NUMBER;
|
||||
BEGIN
|
||||
SELECT COUNT(*) INTO v_count FROM user_indexes WHERE index_name = 'IX_TB_FLASH_FATO_VENDA_EMP';
|
||||
IF v_count = 0 THEN
|
||||
EXECUTE IMMEDIATE 'CREATE INDEX IX_TB_FLASH_FATO_VENDA_EMP ON TB_FLASH_FATO_VENDA (COD_EMPRESA, ANO_REFERENCIA, MES_REFERENCIA)';
|
||||
END IF;
|
||||
END;
|
||||
-- +goose StatementEnd
|
||||
-- +goose StatementBegin
|
||||
DECLARE
|
||||
v_count NUMBER;
|
||||
BEGIN
|
||||
SELECT COUNT(*) INTO v_count FROM user_indexes WHERE index_name = 'IX_TB_FLASH_FATO_VENDA_PROD';
|
||||
IF v_count = 0 THEN
|
||||
EXECUTE IMMEDIATE 'CREATE INDEX IX_TB_FLASH_FATO_VENDA_PROD ON TB_FLASH_FATO_VENDA (COD_PRODUTO)';
|
||||
END IF;
|
||||
END;
|
||||
-- +goose StatementEnd
|
||||
-- +goose StatementBegin
|
||||
DECLARE
|
||||
v_count NUMBER;
|
||||
BEGIN
|
||||
SELECT COUNT(*) INTO v_count FROM user_constraints WHERE constraint_name = 'UK_TB_FLASH_FATO_VENDA';
|
||||
IF v_count = 0 THEN
|
||||
EXECUTE IMMEDIATE 'ALTER TABLE TB_FLASH_FATO_VENDA ADD CONSTRAINT UK_TB_FLASH_FATO_VENDA UNIQUE (DATA_REFERENCIA, COD_EMPRESA, COD_PRODUTO, NROSEGMENTO)';
|
||||
END IF;
|
||||
END;
|
||||
-- +goose StatementEnd
|
||||
|
||||
-- +goose Down
|
||||
-- +goose StatementBegin
|
||||
DECLARE
|
||||
v_count NUMBER;
|
||||
BEGIN
|
||||
SELECT COUNT(*) INTO v_count FROM user_tables WHERE table_name = 'TB_FLASH_FATO_VENDA';
|
||||
IF v_count > 0 THEN
|
||||
EXECUTE IMMEDIATE 'DROP TABLE TB_FLASH_FATO_VENDA CASCADE CONSTRAINTS PURGE';
|
||||
END IF;
|
||||
END;
|
||||
-- +goose StatementEnd
|
||||
Reference in New Issue
Block a user