1
resposta

ERROR: relation "aluno" already exists

CREATE TABLE aluno(
    id SERIAL,
        nome VARCHAR(255),
        cpf CHAR(11),
        observacao TEXT,
        idade INTEGER,
        dinheiro NUMERIC(10,2),
        altura REAL,
        ativo BOOLEAN,
        data_nascimento DATE,
        hora_aula TIME,
        matriculado_em TIMESTAMP
);

SELECT * FROM aluno
1 resposta

Oii, Yan! Tudo bem?

Yan, esse erro "relation 'aluno' already exists" indica que já existe uma tabela com esse nome em seu banco de dados.

Para esse cenário apresentado uma possível solução é:

  • Verificar se a tabela "aluno" existe, para isso segue o comando que você pode executar em seu banco de dados:
SELECT EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = 'aluno');

Se o resultado for TRUE, significa que a tabela existe e você pode optar por renomeá-la ou excluí-la antes de recriá-la.

  • Caso você escolha recriá-la e substituir a versão existente, pode-se usar o comando DROP TABLE antes de executar o comando CREAT TABLE:

Segue o exemplo do código:

DROP TABLE IF EXISTS aluno;

CREATE TABLE aluno(
    id SERIAL,
    nome VARCHAR(255),
    cpf CHAR(11),
    observacao TEXT,
    idade INTEGER,
    dinheiro NUMERIC(10,2),
    altura REAL,
    ativo BOOLEAN,
    data_nascimento DATE,
    hora_aula TIME,
    matriculado_em TIMESTAMP
);

SELECT * FROM aluno;

Basicamente, no código acima, o comando DROP TABLE exclui a tabela se ela existir e logo depois o comando CREAT TABLE cria uma nova tabela bem estruturada.

Espero ter ajudado. Conte com a Alura para evoluir nos estudos!

Bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!