Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Criação da tabela de Livros
- CREATE TABLE IF NOT EXISTS Livros (
- LivroID SERIAL PRIMARY KEY,
- Titulo VARCHAR(100),
- Autor VARCHAR(50),
- AnoPublicacao INT
- );
- -- Criação da tabela de Usuários
- CREATE TABLE IF NOT EXISTS Usuarios (
- UsuarioID SERIAL PRIMARY KEY,
- Nome VARCHAR(50),
- Email VARCHAR(100)
- );
- -- Criação da tabela de Empréstimos
- CREATE TABLE IF NOT EXISTS Emprestimos (
- EmprestimoID SERIAL PRIMARY KEY,
- LivroID INT,
- UsuarioID INT,
- DataEmprestimo DATE,
- DataDevolucao DATE,
- FOREIGN KEY (LivroID) REFERENCES Livros(LivroID),
- FOREIGN KEY (UsuarioID) REFERENCES Usuarios(UsuarioID)
- );
- -- Função para inserir dados fictícios na tabela Livros
- CREATE OR REPLACE FUNCTION InserirDadosLivros(qtdRegistros INT)
- RETURNS VOID AS $$
- DECLARE
- i INT := 1;
- BEGIN
- WHILE i <= qtdRegistros LOOP
- INSERT INTO Livros (Titulo, Autor, AnoPublicacao)
- VALUES (CONCAT('Livro ', i), CONCAT('Autor ', i), 2000 + i);
- i := i + 1;
- END LOOP;
- END;
- $$ LANGUAGE plpgsql;
- -- Função para inserir dados fictícios na tabela Usuarios
- CREATE OR REPLACE FUNCTION InserirDadosUsuarios(qtdRegistros INT)
- RETURNS VOID AS $$
- DECLARE
- i INT := 1;
- BEGIN
- WHILE i <= qtdRegistros LOOP
- INSERT INTO Usuarios (Nome, Email)
- VALUES (CONCAT('Usuário ', i), CONCAT('usuario', i, '@exemplo.com'));
- i := i + 1;
- END LOOP;
- END;
- $$ LANGUAGE plpgsql;
- -- Função para inserir dados fictícios na tabela Emprestimos
- CREATE OR REPLACE FUNCTION inserirdadosemprestimos(qtdemprestimosporusuario integer)
- RETURNS void AS $$
- DECLARE
- usuario_id INT;
- livro_id INT;
- i INT := 1;
- BEGIN
- -- Loop pelos usuários
- FOR usuario_id IN (SELECT UsuarioID FROM Usuarios) LOOP
- -- Loop para inserir empréstimos para o usuário
- FOR j IN 1..qtdEmprestimosPorUsuario LOOP
- -- Seleciona um livro aleatório
- livro_id := (SELECT LivroID FROM Livros ORDER BY random() LIMIT 1);
- -- Insere o empréstimo
- INSERT INTO Emprestimos (LivroID, UsuarioID, DataEmprestimo, DataDevolucao)
- VALUES (livro_id, usuario_id, NOW(), NOW() + INTERVAL '1 DAY' * i);
- i := i + 1;
- END LOOP;
- END LOOP;
- END;
- $$ LANGUAGE plpgsql;
- SELECT InserirDadosUsuarios(500);
- SELECT InserirDadosLivros(15000);
- SELECT InserirDadosEmprestimos(2);
- SELECT InserirDadosEmprestimos(2);
- SELECT InserirDadosEmprestimos(3);
- SELECT InserirDadosEmprestimos(3);
- SELECT InserirDadosEmprestimos(4);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement