Gente, sou iniciante na utilização do Postgre. Estou com um problema que não sei como resolver, alguém poderia me ajudar?
O problema é o seguinte: Criei a tabela como postei (item1) abaixo e depois cliquei no botão do postgre para executar consultas SQL e digitei o comando como postei (item2). E dá o seguinte erro que postei(item3), não sei o que faço para conseguir inserir.
postei (item1)
CREATE TABLE "Cadastro"
(
"ID_Cadastro" integer NOT NULL,
"Nome" text NOT NULL
)
Outra coisa, valores numericos não precisam de aspas e valores de texto (text) tem estar com aspas simples.
Obs.: Seria melhor declarar o campo nome como character varying e não text que é pra campos que vão receber muito texto, tipo observação ou detalhes.
Oi iogui, muito obrigada pelas dicas. Consertei as coisas conforme vc me disse. Mas, agora está acusando que a relação “cadastro já existe”.
Copiei a instrução toda como aparece lá no Postgre, pois não sei se no geral tem algo errado.
Puxa vida, agora não sei onde está o erro. Pô não tem que mencionar a tabela que tá querendo inserir?
Então porque está dizendo que: relação “cadastro” já existe ??? Pela mensagem que aparece, dá a entender que estou querendo criar outra tabela, mas não estou fazendo isso com o comando que digitei. :shock:
Muito Obrigada
iogui
vick01:
Puxa vida, agora não sei onde está o erro. Pô não tem que mencionar a tabela que tá querendo inserir?
Então porque está dizendo que: relação “cadastro” já existe ??? Pela mensagem que aparece, dá a entender que estou querendo criar outra tabela, mas não estou fazendo isso com o comando que digitei. :shock:
Muito Obrigada
Por que vc está rodando o script de criação da tabela sendo que ela já existe.
Se for recriar a tabela primeiro remova ela com o comando drop que está comentado aí no seu script:
DROP TABLE "Cadastro";
Comentários no postgree é com “–”.
[]s
V
vick01
Oi iogui, obrigada pela nova dica, exclui o comentário (–) do comando DROP, mas ainda não está rodando.
Agora a mensagem é de que a tabela “cadastro não existe”. (coloquei o código e o erro abaixo)
Puxa vida, se coloco o comando DROP, diz que não existe. E se tiro o comando DROP diz que já existe.
Eu estou inserindo o DROP no local certo???
Já tentei apagar todo o comando de crianção da tab e coloquei só deixei o INSERT INTO, mas não funcionou também código sql
Vamos pensar de forma lógica. O drop remove a tabela, certo?
Se você rodar ele depois de um comando de CREATE, qual a utilidade disto? Vai criar a tabela e imediatamente depois remover???
Ok, vamos com calma. Não rode este teu script tudo junto.
Rode comando por comando. Saboreie o que está acontecendo. Analise…
Agora vamos tentar novamente, mas vamos usar a estratégia de dividir para conquista, ok?
Selecione apenas a linha do comando de drop e clique no botão de executar a consulta da tela de query do pgAdmin.
Veja o que aconteceu. Leia o que veio no console. De um F5 no pgAdmin e veja se a tabela sumiu.
Se tudo foi bem até aí, rode o próximo comando. Selecione as linhas de create até o “;” e rode somente ele.
Veja se deu certo, se não deu msg de erro.
F5 no pgAdmin de novo pra ver se a tabela apareceu.
Se chegamos até aí, tenho certeza que seu insert vai funcionar. Se não funcionar, aí sim poste o erro aqui que damos uma ajuda, ok?
V
vick01
Puxa vida Iogui, muito obrigada pela atenção a dúvida. Fiz tudo direitinho como você falou, mas só funcionou nos passos 1º e 2º, apartir do 3º não funciona.
1º Passo - F5 apenas em
DROP TABLE "Cadastro";
- Consulta executada com sucesso sem resultados em 70 ms. - Até aí OK
2º Passo - F5 apenas em
ERRO: relação "cadastro" não existe
LINE 14: INSERT INTO Cadastro VALUES ( 1, 'Marcela' )
^
********** Erro **********
ERRO: relação "cadastro" não existe
SQL state: 42P01
Caracter: 222
Puxa vida já testei uma porção de coisa. Ainda continuo fazendo alguma coisa de errado ?????
Muito obrigada
iogui
O 3º passo está errado. Não dê F5 em tudo, apenas na linha de INSERT.
Se vc já dropou a tabela e já recriou, pra que você vai fazer isto de novo?
Não rode o script todo. Rode comando por comando.
Dividir para conquistar, lembra?
V
vick01
Muito obrigada Iogui, Agora funcionou. Tive que incluir o nome da tabela entre àspas duplas assim:
INSERT INTO "Cadastro" VALUES ( 3, 'Marcela' )
Agora estou com um outro problema:
Consegui incluir vários cadastros dando F5 em CADA UM, tem como incluir os cadastros selecionando todos de uma vez e apertar F5 só uma vez? Tentei assim:
INSERT INTO "Cadastro" VALUES ( 3, 'Marcela' )
INSERT INTO "Cadastro" VALUES ( 5, 'Maria' )
INSERT INTO "Cadastro" VALUES ( 7, 'Marcelina' )
INSERT INTO "Cadastro" VALUES ( 9, 'Jones' )
Mas está dando o seguinte erro de sintaxe.
ERRO: erro de sintaxe em ou próximo a "INSERT"
LINE 2: INSERT INTO “Cadastro” VALUES ( 5, ‘Maria’ )
^
********** Erro **********
ERRO: erro de sintaxe em ou próximo a "INSERT"
SQL state: 42601
Caracter: 48
Muito obrigada mesmo,
iogui
vick01:
Muito obrigada Iogui, Agora funcionou. Tive que incluir o nome da tabela entre àspas duplas assim:
INSERT INTO "Cadastro" VALUES ( 3, 'Marcela' )
Agora estou com um outro problema:
Consegui incluir vários cadastros dando F5 em CADA UM, tem como incluir os cadastros selecionando todos de uma vez e apertar F5 só uma vez? Tentei assim:
INSERT INTO "Cadastro" VALUES ( 3, 'Marcela' )
INSERT INTO "Cadastro" VALUES ( 5, 'Maria' )
INSERT INTO "Cadastro" VALUES ( 7, 'Marcelina' )
INSERT INTO "Cadastro" VALUES ( 9, 'Jones' )
Mas está dando o seguinte erro de sintaxe.
ERRO: erro de sintaxe em ou próximo a "INSERT"
LINE 2: INSERT INTO “Cadastro” VALUES ( 5, ‘Maria’ )
^
********** Erro **********
ERRO: erro de sintaxe em ou próximo a "INSERT"
SQL state: 42601
Caracter: 48
Muito obrigada mesmo,
Tem, coloque um “;” no final de cada linha de insert e rode todos inserts de uma vez.
Eu só falei pra vc rodar um comando por vez pois assim fica mais fácil pra encontrar o erro, isolar a causa.
Uma vez sabendo que todos os comandos estejam funcionando, você pode colocar todos no mesmo script pra rodar tudo de uma só vez, contanto que tenha sentido fazer isto e esteja numa ordem lógica.
Geralmente, comandos de DDL (Data Definition Language) como create table ou drop vc vai querer usar menos.
Uma vez criada a tabela, vc não vai ter que ficar recriando ela toda hora. Só se tiver que mudar algo na sua definição.
Por outro lado, vc vai estar sempre inserindo e fazendo selects e updates.
Desta forma sugiro que vc guarde devidamente os seus DDL em lugar seguro pro caso de precisar deles novamente e se concentre nos insert, select e update.
[]s
V
vick01
Muito obrigada mesmo Iogui, funcionou também.
Que Deus te abençoe rica e abundantemente.
Obrigada,
iogui
vick01:
Muito obrigada mesmo Iogui, funcionou também.
Que Deus te abençoe rica e abundantemente.
Obrigada,
Deus abençoe seu aprendizado vick01!
Não esqueça de dar uma olhada nos links que te passei. Tenho certeza que serão muito úteis!