Skip to content

Instantly share code, notes, and snippets.

@celsowm
Last active May 25, 2019 17:05
Show Gist options
  • Save celsowm/b139713d65d6c42df084269b3f150a2d to your computer and use it in GitHub Desktop.
Save celsowm/b139713d65d6c42df084269b3f150a2d to your computer and use it in GitHub Desktop.
livraria_oraclev0.2.sql
-- --------------------------------------------------------
-- Servidor: 10.120.100.14
-- Versão do servidor: 5.1.61 - Source distribution
-- OS do Servidor: redhat-linux-gnu
-- HeidiSQL Versão: 10.1.0.5464
-- VERSÃO CORRIGIDA POR TARCÍSCIO FREITAS: https://www.linkedin.com/in/tarcisio-freitas-1484bb9/
-- --------------------------------------------------------
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET NAMES utf8 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
-- Copiando estrutura do banco de dados para livraria
DROP USER livraria CASCADE;
CREATE USER livraria IDENTIFIED BY livraria /*!40100 DEFAULT CHARACTER SET latin1 */;
/* Instruções de ajustes
1. Retirada de todo carcter "`" que antecede o nome de qualquer objeto
2. Conceder alguma cota para o usuario livraria: ilimitado ou um valor qq. Coloquei 100mb
3. Determinar a ordem de criação dos objetos. As tabela que menos dependem de outras precisam ser criadas antes.
4. Objetos partilhando o mesmo nome, comummente constraints e índices.
5. Os erros --Ora- registrei em cada ajuste
*/
--GRANT UNLIMITED TABLESPACE TO livraria; /*ou */
ALTER USER livraria QUOTA 100M ON users;
-- ORA-01950: não há privilégios no tablespace USERS'
/* Para resovler o erro acima incluir a instrução abaixo antes do Create Table*/
ALTER SESSION SET CURRENT_SCHEMA = livraria;
-- Copiando estrutura para tabela livraria.editora
BEGIN
EXECUTE IMMEDIATE 'DROP TABLE editora';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE TABLE editora (
id number(10) NOT NULL,
nome varchar2(255) NOT NULL,
website varchar2(255) NOT NULL,
cnpj varchar2(14) NOT NULL,
endereco varchar2(255) NOT NULL,
PRIMARY KEY (id)
) ;
-- Generate ID using sequence and trigger
CREATE SEQUENCE editora_seq START WITH 5 INCREMENT BY 1;
CREATE OR REPLACE TRIGGER editora_seq_tr
BEFORE INSERT ON editora FOR EACH ROW
WHEN (NEW.id IS NULL)
BEGIN
SELECT editora_seq.NEXTVAL INTO :NEW.id FROM DUAL;
END;
/
-- Copiando dados para a tabela livraria.editora: ~4 rows (aproximadamente)
DELETE FROM editora;
/*!40000 ALTER TABLE editora DISABLE KEYS */;
INSERT INTO editora (id, nome, website, cnpj, endereco)
SELECT 1, 'Editora Organizações Tabajara', 'http://www.tabajara-livros.com.br', '66968328000104', '545345345' FROM dual UNION ALL
SELECT 2, 'Editora Mosantos LTDA', 'http://www.editora-mosantos.com.br', '80880262000127', '23452345235' FROM dual UNION ALL
SELECT 3, 'Editora Top das Galaxias', 'http://www.w3.org/Addressing/URL/url-spec.txt', '36215975395', '34252345234' FROM dual UNION ALL
SELECT 4, 'EDITORA VILA 8', 'www.vila8.org', '1654984546549', '123412341234' FROM dual;
/*!40000 ALTER TABLE editora ENABLE KEYS */;
-- ORA-01400: não é possível inserir NULL em ("LIVRARIA"."EDITORA"."ENDERECO")
-- Faltou o campo endereço para os ultimos 4 registros
-- Copiando estrutura para tabela livraria.pedido
BEGIN
EXECUTE IMMEDIATE 'DROP TABLE pedido';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
-- Copiando estrutura para tabela livraria.autor
BEGIN
EXECUTE IMMEDIATE 'DROP TABLE autor';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE TABLE autor (
id number(10) NOT NULL,
nome varchar2(255) NOT NULL,
PRIMARY KEY (id)
) ;
-- Generate ID using sequence and trigger
CREATE SEQUENCE autor_seq START WITH 17 INCREMENT BY 1;
CREATE OR REPLACE TRIGGER autor_seq_tr
BEFORE INSERT ON autor FOR EACH ROW
WHEN (NEW.id IS NULL)
BEGIN
SELECT autor_seq.NEXTVAL INTO :NEW.id FROM DUAL;
END;
/
-- Copiando dados para a tabela livraria.autor: ~16 rows (aproximadamente)
DELETE FROM autor;
/*!40000 ALTER TABLE autor DISABLE KEYS */;
INSERT INTO autor (id, nome)
SELECT 1, 'Mosantos de Vilar dos Telles' FROM dual UNION ALL
SELECT 2, 'Jonas Guanabara' FROM dual UNION ALL
SELECT 3, 'Joselito de Cascatinha' FROM dual UNION ALL
SELECT 4, 'Luis Boça' FROM dual UNION ALL
SELECT 5, 'Charlinho Menino Guerreiro' FROM dual UNION ALL
SELECT 6, 'Dona Maxima' FROM dual UNION ALL
SELECT 7, 'Doutor Lincon' FROM dual UNION ALL
SELECT 8, 'Linhares' FROM dual UNION ALL
SELECT 9, 'Jonny Boganville' FROM dual UNION ALL
SELECT 10, ' Jimmy Leroy' FROM dual UNION ALL
SELECT 11, 'Professor Gilmar' FROM dual UNION ALL
SELECT 12, 'Padre Quemedo' FROM dual UNION ALL
SELECT 13, 'Lagreca' FROM dual UNION ALL
SELECT 14, 'Dedé Carvoeiro' FROM dual UNION ALL
SELECT 15, 'Carlos Carne' FROM dual UNION ALL
SELECT 16, 'Seu Madruga' FROM dual;
/*!40000 ALTER TABLE autor ENABLE KEYS */;
-- Copiando estrutura para tabela livraria.livro
BEGIN
EXECUTE IMMEDIATE 'DROP TABLE livro';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE TABLE livro (
id number(10) NOT NULL,
titulo varchar2(255) NOT NULL,
preco number(18,2) NOT NULL,
isbn varchar2(13) NOT NULL,
edicao number(10) NOT NULL,
ano_publicacao char(4) NOT NULL,
editora_id number(10) NOT NULL,
PRIMARY KEY (id),
CONSTRAINT isbn UNIQUE (isbn)
,
CONSTRAINT livro_ibfk_1 FOREIGN KEY (editora_id) REFERENCES editora (id)
) ;
-- Generate ID using sequence and trigger
CREATE SEQUENCE livro_seq START WITH 10 INCREMENT BY 1;
CREATE OR REPLACE TRIGGER livro_seq_tr
BEFORE INSERT ON livro FOR EACH ROW
WHEN (NEW.id IS NULL)
BEGIN
SELECT livro_seq.NEXTVAL INTO :NEW.id FROM DUAL;
END;
/
-- Copiando dados para a tabela livraria.livro: ~9 rows (aproximadamente)
DELETE FROM livro;
/*!40000 ALTER TABLE livro DISABLE KEYS */;
INSERT INTO livro (id, titulo, preco, isbn, edicao, ano_publicacao, editora_id)
SELECT 1, 'Sucesso na Vida', 39.99, '123456789112', 15, '2012', 1 FROM dual UNION ALL
SELECT 2, 'Brincadeira em Excesso Virou Bobeira', 44.01, '9876543211112', 2, '2015', 2 FROM dual UNION ALL
SELECT 3, 'Fazendo Bolos com CakePHP', 89.95, '3216547894561', 3, '2017', 1 FROM dual UNION ALL
SELECT 4, 'Vamos Investigar?', 63.22, '7849516236295', 2, '2014', 2 FROM dual UNION ALL
SELECT 5, 'Portabilidade Manual: Um Tutorial Prático', 100.99, '4568521597534', 2, '1997', 2 FROM dual UNION ALL
SELECT 6, 'Brazil Mulambo', 9.99, '1236547562111', 1, '2014', 1 FROM dual UNION ALL
SELECT 7, 'Tudo pelo estudo', 1.99, '12345678965', 1, '2002', 3 FROM dual UNION ALL
SELECT 8, 'Quem Cedo Madruga Deus Ajuda', 55.99, '9157357561', 5, '1997', 1 FROM dual UNION ALL
SELECT 9, 'Madrugando', 18.89, '5485315675165', 10, '1991', 4 FROM dual;
-- Copiando estrutura para tabela livraria.autor_livro
BEGIN
EXECUTE IMMEDIATE 'DROP TABLE autor_livro';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE TABLE autor_livro (
id number(10) NOT NULL,
autor_id number(10) NOT NULL,
livro_id number(10) NOT NULL,
PRIMARY KEY (id),
CONSTRAINT autor_id UNIQUE (autor_id,livro_id)
,
CONSTRAINT autor_livro_ibfk_1 FOREIGN KEY (autor_id) REFERENCES autor (id),
CONSTRAINT autor_livro_ibfk_2 FOREIGN KEY (livro_id) REFERENCES livro (id)
) ;
-- Generate ID using sequence and trigger
CREATE SEQUENCE autor_livro_seq START WITH 24 INCREMENT BY 1;
CREATE OR REPLACE TRIGGER autor_livro_seq_tr
BEFORE INSERT ON autor_livro FOR EACH ROW
WHEN (NEW.id IS NULL)
BEGIN
SELECT autor_livro_seq.NEXTVAL INTO :NEW.id FROM DUAL;
END;
/
CREATE INDEX autor_id_2 ON autor_livro (autor_id);
CREATE INDEX livro_id ON autor_livro (livro_id);
-- Copiando dados para a tabela livraria.autor_livro: ~17 rows (aproximadamente)
DELETE FROM autor_livro;
/*!40000 ALTER TABLE autor_livro DISABLE KEYS */;
--ORA-02291: restrição de integridade (LIVRARIA.AUTOR_LIVRO_IBFK_2) violada - chave mãe não localizada
INSERT INTO autor_livro (id, autor_id, livro_id)
SELECT 1, 1, 2 FROM dual UNION ALL
SELECT 8, 1, 4 FROM dual UNION ALL
SELECT 9, 1, 5 FROM dual UNION ALL
SELECT 10, 1, 6 FROM dual UNION ALL
SELECT 2, 2, 1 FROM dual UNION ALL
SELECT 3, 3, 1 FROM dual UNION ALL
SELECT 16, 3, 3 FROM dual UNION ALL
SELECT 11, 3, 6 FROM dual UNION ALL
SELECT 17, 4, 3 FROM dual UNION ALL
SELECT 18, 5, 3 FROM dual UNION ALL
SELECT 12, 5, 6 FROM dual UNION ALL
SELECT 13, 5, 7 FROM dual UNION ALL
SELECT 20, 11, 8 FROM dual UNION ALL
SELECT 21, 12, 8 FROM dual UNION ALL
SELECT 22, 14, 8 FROM dual UNION ALL
SELECT 23, 16, 8 FROM dual UNION ALL
SELECT 15, 16, 9 FROM dual;
/*!40000 ALTER TABLE autor_livro ENABLE KEYS */;
-- Copiando estrutura para tabela livraria.cliente
BEGIN
EXECUTE IMMEDIATE 'DROP TABLE cliente';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE TABLE cliente (
id number(10) NOT NULL,
nome varchar2(255) NOT NULL,
cpf varchar2(11) NOT NULL,
telefone varchar2(20) NOT NULL,
PRIMARY KEY (id)
) ;
-- Generate ID using sequence and trigger
CREATE SEQUENCE cliente_seq START WITH 5 INCREMENT BY 1;
CREATE OR REPLACE TRIGGER cliente_seq_tr
BEFORE INSERT ON cliente FOR EACH ROW
WHEN (NEW.id IS NULL)
BEGIN
SELECT cliente_seq.NEXTVAL INTO :NEW.id FROM DUAL;
END;
/
-- Copiando dados para a tabela livraria.cliente: ~4 rows (aproximadamente)
DELETE FROM cliente;
/*!40000 ALTER TABLE cliente DISABLE KEYS */;
INSERT INTO cliente (id, nome, cpf, telefone)
SELECT 1, 'Steven Beagle', '33554488662', '219999999' FROM dual UNION ALL
SELECT 2, 'Dudu Marchiori', '78945873215', '2155555555' FROM dual UNION ALL
SELECT 3, 'Adilson Polloskki', '32145675395', '1166666666' FROM dual UNION ALL
SELECT 4, 'Kiko', '12345678999', '2154355646' FROM dual;
/*!40000 ALTER TABLE cliente ENABLE KEYS */;
-- Copiando estrutura para tabela livraria.funcionario
BEGIN
EXECUTE IMMEDIATE 'DROP TABLE funcionario';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE TABLE funcionario (
id number(10) NOT NULL,
nome varchar2(255) NOT NULL,
cpf varchar2(11) NOT NULL,
gerente_id number(10) DEFAULT NULL,
PRIMARY KEY (id)
,
CONSTRAINT funcionario_ibfk_1 FOREIGN KEY (gerente_id) REFERENCES funcionario (id)
) ;
-- Generate ID using sequence and trigger
CREATE SEQUENCE funcionario_seq START WITH 17 INCREMENT BY 1;
CREATE OR REPLACE TRIGGER funcionario_seq_tr
BEFORE INSERT ON funcionario FOR EACH ROW
WHEN (NEW.id IS NULL)
BEGIN
SELECT funcionario_seq.NEXTVAL INTO :NEW.id FROM DUAL;
END;
/
CREATE INDEX gerente_id ON funcionario (gerente_id);
-- Copiando dados para a tabela livraria.funcionario: ~9 rows (aproximadamente)
DELETE FROM funcionario;
/*!40000 ALTER TABLE funcionario DISABLE KEYS */;
INSERT INTO funcionario (id, nome, cpf, gerente_id)
SELECT 7, 'Lurdes Boça', '74832651489', NULL FROM dual UNION ALL
SELECT 8, 'Wallace Guilhermino', '65478932145', 7 FROM dual UNION ALL
SELECT 9, 'Edson Wander', '54698715324', 8 FROM dual UNION ALL
SELECT 10, 'Cláudio Ricardo', '45667789442', 7 FROM dual UNION ALL
SELECT 11, 'Neo Labaque', '54789634128', 7 FROM dual UNION ALL
SELECT 13, 'Renato Noiadão', '56842365142', 10 FROM dual UNION ALL
SELECT 14, 'José Canjica Martins', '24862486248', 7 FROM dual UNION ALL
SELECT 15, 'Carlos Calhorda', '24321589654', 8 FROM dual UNION ALL
SELECT 16, 'Chaves', '57352187256', NULL FROM dual;
/*!40000 ALTER TABLE funcionario ENABLE KEYS */;
CREATE TABLE pedido (
id number(10) NOT NULL,
data timestamp(0) NOT NULL,
cliente_id number(10) NOT NULL,
funcionario_id number(10) NOT NULL,
PRIMARY KEY (id)
,
CONSTRAINT pedido_ibfk_1 FOREIGN KEY (funcionario_id) REFERENCES funcionario (id),
CONSTRAINT pedido_ibfk_2 FOREIGN KEY (cliente_id) REFERENCES cliente (id)
) ;
-- Generate ID using sequence and trigger
CREATE SEQUENCE pedido_seq START WITH 37 INCREMENT BY 1;
CREATE OR REPLACE TRIGGER pedido_seq_tr
BEFORE INSERT ON pedido FOR EACH ROW
WHEN (NEW.id IS NULL)
BEGIN
SELECT pedido_seq.NEXTVAL INTO :NEW.id FROM DUAL;
END;
/
-- Copiando estrutura para tabela livraria.habilitacao
BEGIN
EXECUTE IMMEDIATE 'DROP TABLE habilitacao';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE TABLE habilitacao (
id number(10) NOT NULL,
numero varchar2(11) NOT NULL,
categoria char(2) NOT NULL,
funcionario_id number(10) NOT NULL,
PRIMARY KEY (id),
CONSTRAINT funcionario_id UNIQUE (funcionario_id),
CONSTRAINT habilitacao_ibfk_1 FOREIGN KEY (funcionario_id) REFERENCES funcionario (id)
) ;
-- Generate ID using sequence and trigger
CREATE SEQUENCE habilitacao_seq START WITH 9 INCREMENT BY 1;
CREATE OR REPLACE TRIGGER habilitacao_seq_tr
BEFORE INSERT ON habilitacao FOR EACH ROW
WHEN (NEW.id IS NULL)
BEGIN
SELECT habilitacao_seq.NEXTVAL INTO :NEW.id FROM DUAL;
END;
/
-- Copiando dados para a tabela livraria.habilitacao: ~7 rows (aproximadamente)
DELETE FROM habilitacao;
/*!40000 ALTER TABLE habilitacao DISABLE KEYS */;
INSERT INTO habilitacao (id, numero, categoria, funcionario_id)
SELECT 1, '78495162354', 'B', 7 FROM dual UNION ALL
SELECT 2, '99885523654', 'AD', 10 FROM dual UNION ALL
SELECT 3, '45687512598', 'C', 13 FROM dual UNION ALL
SELECT 5, '12396348525', 'A', 11 FROM dual UNION ALL
SELECT 6, '21575698423', 'AB', 14 FROM dual UNION ALL
SELECT 7, '14785236548', 'C', 15 FROM dual UNION ALL
SELECT 8, '23484562848', 'AB', 16 FROM dual;
/*!40000 ALTER TABLE habilitacao ENABLE KEYS */;
-- Copiando estrutura para tabela livraria.item_pedido
BEGIN
EXECUTE IMMEDIATE 'DROP TABLE item_pedido';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE TABLE item_pedido (
id number(10) NOT NULL,
pedido_id number(10) NOT NULL,
livro_id number(10) NOT NULL,
quantidade number(10) NOT NULL,
PRIMARY KEY (id),
CONSTRAINT pedido_id UNIQUE (pedido_id,livro_id)
,
CONSTRAINT item_pedido_ibfk_1 FOREIGN KEY (pedido_id) REFERENCES pedido (id),
CONSTRAINT item_pedido_ibfk_2 FOREIGN KEY (livro_id) REFERENCES livro (id)
) ;
-- Generate ID using sequence and trigger
CREATE SEQUENCE item_pedido_seq START WITH 41 INCREMENT BY 1;
CREATE OR REPLACE TRIGGER item_pedido_seq_tr
BEFORE INSERT ON item_pedido FOR EACH ROW
WHEN (NEW.id IS NULL)
BEGIN
SELECT item_pedido_seq.NEXTVAL INTO :NEW.id FROM DUAL;
END;
/
ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS';
Select sysdate From dual;
-- Copiando dados para a tabela livraria.pedido: ~21 rows (aproximadamente)
DELETE FROM pedido;
/*!40000 ALTER TABLE pedido DISABLE KEYS */;
INSERT INTO pedido (id, data, cliente_id, funcionario_id)
SELECT 1, to_date ('2016-03-01 00:00:00','yyyy-mm-dd hh24:mi:ss'), 1, 10 FROM dual UNION ALL
SELECT 2, to_date ('2014-12-11 13:00:00','yyyy-mm-dd hh24:mi:ss'), 2, 9 FROM dual UNION ALL
SELECT 3, to_date ('2017-03-30 06:30:37','yyyy-mm-dd hh24:mi:ss'), 1, 7 FROM dual UNION ALL
SELECT 5, to_date ('2017-03-26 04:34:00','yyyy-mm-dd hh24:mi:ss'), 1, 7 FROM dual UNION ALL
SELECT 6, to_date ('2038-03-27 16:47:00','yyyy-mm-dd hh24:mi:ss'), 1, 7 FROM dual UNION ALL
SELECT 7, to_date ('2017-05-22 12:55:00','yyyy-mm-dd hh24:mi:ss'), 1, 16 FROM dual UNION ALL
SELECT 11, to_date ('2017-05-25 15:07:00','yyyy-mm-dd hh24:mi:ss'), 4, 16 FROM dual UNION ALL
SELECT 12, to_date ('2017-05-26 14:09:00','yyyy-mm-dd hh24:mi:ss'), 4, 11 FROM dual UNION ALL
SELECT 16, to_date ('2017-05-26 14:26:00','yyyy-mm-dd hh24:mi:ss'), 1, 7 FROM dual UNION ALL
SELECT 17, to_date ('2017-05-26 14:28:00','yyyy-mm-dd hh24:mi:ss'), 2, 10 FROM dual UNION ALL
SELECT 20, to_date ('2017-05-26 15:14:00','yyyy-mm-dd hh24:mi:ss'), 1, 10 FROM dual UNION ALL
SELECT 26, to_date ('2017-05-29 13:04:00','yyyy-mm-dd hh24:mi:ss'), 4, 14 FROM dual UNION ALL
SELECT 27, to_date ('2017-05-29 13:04:00','yyyy-mm-dd hh24:mi:ss'), 4, 14 FROM dual UNION ALL
SELECT 28, to_date ('2017-05-29 13:05:00','yyyy-mm-dd hh24:mi:ss'), 3, 10 FROM dual UNION ALL
SELECT 29, to_date ('2017-05-30 14:49:00','yyyy-mm-dd hh24:mi:ss'), 3, 9 FROM dual UNION ALL
SELECT 30, to_date ('2017-05-31 12:44:00','yyyy-mm-dd hh24:mi:ss'), 2, 14 FROM dual UNION ALL
SELECT 32, to_date ('2017-05-31 12:49:00','yyyy-mm-dd hh24:mi:ss'), 3, 13 FROM dual UNION ALL
SELECT 33, to_date ('2017-05-31 12:53:00','yyyy-mm-dd hh24:mi:ss'), 4, 8 FROM dual UNION ALL
SELECT 34, to_date ('2017-05-31 12:53:00','yyyy-mm-dd hh24:mi:ss'), 3, 15 FROM dual UNION ALL
SELECT 35, to_date ('2017-06-19 19:00:00','yyyy-mm-dd hh24:mi:ss'), 1, 7 FROM dual UNION ALL
SELECT 36, to_date ('2017-04-19 04:07:00','yyyy-mm-dd hh24:mi:ss'), 1, 7 FROM dual;
/*!40000 ALTER TABLE pedido ENABLE KEYS */;
-- ORA-01843: não é um mês válido
-- solução: ALTER SESSION SET NLS_DATE_FORMAT='DD-MON-RRRR'
-- Formatar a data no insert
CREATE INDEX livro_idx ON item_pedido (livro_id);
--ORA-00955: nome já está sendo usado por um objeto existente
-- Como estava Antes: CREATE INDEX livro_id ON item_pedido (livro_id);
-- Copiando dados para a tabela livraria.item_pedido: ~37 rows (aproximadamente)
DELETE FROM item_pedido;
/*!40000 ALTER TABLE item_pedido DISABLE KEYS */;
INSERT INTO item_pedido (id, pedido_id, livro_id, quantidade)
SELECT 1, 1, 1, 1 FROM dual UNION ALL
SELECT 2, 1, 3, 1 FROM dual UNION ALL
SELECT 3, 2, 5, 3 FROM dual UNION ALL
SELECT 4, 3, 3, 1 FROM dual UNION ALL
SELECT 5, 2, 4, 2 FROM dual UNION ALL
SELECT 6, 5, 1, 2 FROM dual UNION ALL
SELECT 7, 5, 2, 3 FROM dual UNION ALL
SELECT 8, 5, 5, 4 FROM dual UNION ALL
SELECT 9, 6, 1, 3 FROM dual UNION ALL
SELECT 10, 6, 2, 2 FROM dual UNION ALL
SELECT 11, 6, 6, 4 FROM dual UNION ALL
SELECT 12, 7, 8, 2 FROM dual UNION ALL
SELECT 13, 11, 9, 6 FROM dual UNION ALL
SELECT 14, 12, 1, 8 FROM dual UNION ALL
SELECT 16, 16, 1, 10 FROM dual UNION ALL
SELECT 17, 17, 1, 5 FROM dual UNION ALL
SELECT 18, 17, 4, 10 FROM dual UNION ALL
SELECT 19, 17, 6, 15 FROM dual UNION ALL
SELECT 20, 20, 4, 4 FROM dual UNION ALL
SELECT 21, 26, 2, 5 FROM dual UNION ALL
SELECT 22, 27, 2, 5 FROM dual UNION ALL
SELECT 23, 28, 4, 10 FROM dual UNION ALL
SELECT 24, 29, 2, 8 FROM dual UNION ALL
SELECT 25, 30, 3, 42 FROM dual UNION ALL
SELECT 28, 32, 2, 1 FROM dual UNION ALL
SELECT 29, 33, 7, 20 FROM dual UNION ALL
SELECT 30, 33, 3, 5 FROM dual UNION ALL
SELECT 31, 33, 1, 2 FROM dual UNION ALL
SELECT 32, 34, 6, 5 FROM dual UNION ALL
SELECT 33, 34, 8, 10 FROM dual UNION ALL
SELECT 34, 34, 5, 5 FROM dual UNION ALL
SELECT 35, 35, 1, 24 FROM dual UNION ALL
SELECT 36, 35, 3, 34 FROM dual UNION ALL
SELECT 37, 35, 6, 88 FROM dual UNION ALL
SELECT 38, 36, 1, 24 FROM dual UNION ALL
SELECT 39, 36, 3, 34 FROM dual UNION ALL
SELECT 40, 36, 6, 88 FROM dual;
/*!40000 ALTER TABLE item_pedido ENABLE KEYS */;
--ORA-02291: restrição de integridade (LIVRARIA.ITEM_PEDIDO_IBFK_1) violada - chave mãe não localizada
-- solução: criar a tabela de pedido antes
CREATE INDEX editora_id ON livro (editora_id);
/*!40000 ALTER TABLE livro ENABLE KEYS */;
CREATE INDEX funcionario_idx ON pedido (funcionario_id);
--ORA-00955: nome já está sendo usado por um objeto existente
-- Solução: renomear. Ja havia uma contraint com o nome funcionario_id
CREATE INDEX cliente_id ON pedido (cliente_id);
/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */;
/*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment