Ir para conteúdo
  • ×   Você colou conteúdo com formatação.   Remover formatação

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.

  • Conteúdo Similar

    • Por ronaldo_calado
      Bom dia, estou com dificuldades em fazer um consulta para retornar a soma de valores usando um alias, gostaria de saber se tem outra forma de fazer a consulta, ela funciona no mysql, mas como postgres funciona de forma diferente eu não estou conseguindo fazer
      SELECT date_part('year', due_at) AS ano, date_part('month', due_at) AS mes, (SELECT SUM(value) FROM app_invoices WHERE user_id = 51 AND status = 'paid' AND type = 'income' AND year(due_at) = ano AND month(due_at) = mes) AS income, (SELECT SUM(value) FROM app_invoices WHERE user_id = 51 AND status ='paid' AND type = 'expense' AND year(due_at) = ano AND month(due_at) = mes) AS expense FROM app_invoices WHERE user_id = 51 AND status = 'paid' AND due_at >= DATE(now() - INTERVAL '3' MONTH) GROUP BY date_part('year', due_at), date_part('month', due_at) O erro que está retornando é ERROR: column "ano" does not exist
       
      A ideia era ele somar as faturas dos meses e como na imagem:
       

    • Por TFernandes89
      Bom dia, preciso atualizar uma linha do meu banco de dados validando duas colunas diferentes... estou tentando da seguinte forma:
       
      update produn set prun_margem=prun_margem + 1 from produtos where prod_codigo=prun_prod_codigo and prun_unid_codigo='003' and prun_unid_codigo='050' and prod_grup_codigo='10003'  
      Tenho que atualizar a margem em +1 somente quando se tratar do grupo (prod_grup_codigo) 10003 e nas unidades (prun_unid_codigo) 003 e 050, dessa forma que estou tentando não me da erro, porem não atualiza nada, e se eu tiro a unidade 050 ele atualiza na unidade 003 normalmente.
    • Por icorradi
      Tenho uma "rede social" de artigos, e existem mais de 5 milhoes de artigos registrados. Meu backend foi feito com Django, então foi utilizado o Postgres.

      Estou com um grande problema: para fazer a consulta na tabela de artigos, está SUPER lento, claro q o motivo (creio eu), é a quantidade de linhas (mais de 5 milhoes) e a quantidade de texto da coluna do corpo do artigo. Mas como arquitetar meu banco de dados para para ser tipo o wikipedia? Como deixar minha consulta rapida? Separar em varios bancos? 
       
      Como essas empresas gigantes (facebook, wikipedia, amazon, google) fazem pra suportar milhoes de dados?

      O meu problema será q é o Postgres, q não é preparado pra isso?
       
      Obrigado.
    • Por Analinee3
      Fiz o mapeamento da atividade e   Fiz o código, mas notei q da erro  bem próximo as chaves. Sou iniciante, não tenho noção do erro , como o q é ou que pode ser.agradeço a ajuda!
       
      CREATE TABLE CLIENTE(
      cod_cliente INTEGER NOT NULL,
      nome_cliente VARCHAR(30) NOT NULL,
      num_pedido  INTEGER,
      PRIMARY KEY(COD_CLIENTE)
      );
       CREATE TABLE TELEFONE (
       cod_cliente  INTEGER NOT NULL,
       telefone_fixo  VARCHAR (10),
       telefone_celular  VARCHAR (10),
       FOREIGN KEY ( COD_CLIENTE)
        REFERENCES  CLIENTE  (COD_CLIENTE)
       PRIMARY KEY ( COD_CLIENTE)
         REFERENCES CLIENTE (COD_CLIENTE)
        ); 
        CREATE TABLE EMAIL_CLIENTE (
         cod_cliente     INTEGER NOT NULL,
        email_cliente,  VARCHAR (30),
         email2_cliente VARCHAR (30),
         FOREIGN KEY ( COD_CLIENTE)
        REFERENCES  CLIENTE  ( COD_CLIENTE)
       PRIMARY KEY ( COD_CLIENTE)
         REFERENCES CLIENTE (COD_CLIENTE)
         );
         CREATE TABLE VENDA (
         num_pedido      INTEGER,
         dt_pedido     TIMESTAMP,
         cod_pedido   INTEGER,
         PRIMARY KEY (NUM_PEDIDO) 
         FOREIGN KEY (COD_PRODUTO)
           REFERENCES  PRODUTO (COD_PRODUTO);
         
        CREATE TABLE VENDA_CONTEM(
      num_pedido        INTEGER,
      cod_produto        INTEGER,
      pco_produto      NUMERIC (6,0),
      qtd              NUMERIC (6,0),
      PRIMARY KEY (NUM_PEDIDO)
      REFERENCES  VENDA( NUM_PEDIDO)
      FOREIGN KEY ( COD_PRODUTO)
       REFERENCES  PRODUTO ( COD_PRODUTO)
       );
       CREATE TABLE PRODUTO (
       cod_produto      INTEGER,
       nom_produto      VARCHAR (30) NOT NULL,
       est_produto     NUMERIC (6,0),
       pco_produto    NUMERIC (6,0),
       fabricante       VARCHAR (30),
       FOREIGN KEY (NUM_PEDIDO)
        REFERENCES  COMPRA ( NUM_PEDIDO)
        PRIMARY KEY (COD_PRODUTO)
       );

       CREATE TABLE COMPRA (
       num_pedido     INTEGER,
       dta_pedido     TIMESTAMP,
        FOREIGN KEY (NUM_PEDIDO)
        REFERENCES  VENDA (NUM_PEDIDO)
        PRIMARY KEY (NUM_PEDIDO)
         REFERNCES VENDA(NUM_PEDIDO)
         );
         CREATE TABLE FORNECEDOR (
         cod_fornecedor         INTEGER,
         nom_fornecedor     VARCHAR (30) NOTT NULL,
         rua_local             VARCHAR (30),
         numero_local      VARCHAR (30),
         PRIMARY KEY ( COD_FORNECEDOR)
         );
      CREATE TABLE TELEFONE_FORNECEDOR(
      cod_fornecedor   INTEGER,
      telefone1   VARCHAR (10),
      telefone2      VARCHAR (10),
      FOREIGN KEY ( COD_FORNECEDOR)
        REFERENCES FORNECEDOR ( COD_FORNECEDOR)
      PRIMARY  KEY ( COD_FORNECEDOR)
          REFERENCES  FORNECEDOR ( COD_FORNECEDOR)
          
        );
        CREATE TABLE EMAIL_FORNECEDOR (
      cod_fornecedor    INTEGER,
      email1_fornecedor  VARCHAR (30),
      email2_fornecedor   VARCHAR (30),
      FOREIGN KEY (COD_FORNECEDOR)
        REFERENCES FORNECEDOR ( COD_FORNECEDOR)
       PRIMARY  KEY ( COD_FORNECEDOR)
          REFERENCES  FORNECEDOR ( COD_FORNECEDOR)
          );

    • Por Silva Mateus
      Olá amigos do fórum. Hoje trago a seguinte questão: 
       
      Estou iniciando os estudos sobre conexões JAVA/Postgres. E me deparei com o seguinte problema: 
      Quando tento testar a minha classe chamada, "PoolDeConexoes", ela me retorna os seguintes erros: 

      "Exception in thread "main" java.lang.NullPointerException
          at BDAccess.PoolDeConexoes.<init>(PoolDeConexoes.java:13)
          at BDAccess.PoolDeConexoes.getInstance(PoolDeConexoes.java:21)
          at BDAccess.Main.main(Main.java:9)" 
       
      Porém, a IDE não me exibe nenhum erro semântico durante a digitação, então, o mais provável é que se trata de um erro lógico. 
      Abaixo estão as minhas classes, todas comentadas com o devido processo do pool de conexões, nos moldes solicitados pelo meu professor. 

       
      package BDAccess; import java.util.ArrayList; public class PoolDeConexoes { private static ArrayList<Conexao> conexoes; private static PoolDeConexoes pool; private PoolDeConexoes() { Conexao cn1 = new Conexao(); Conexao cn2 = new Conexao(); conexoes.add(cn1); conexoes.add(cn2); getConexao(); } public static PoolDeConexoes getInstance() { if(pool == null) { pool = new PoolDeConexoes(); } return pool ; } public Conexao getConexao() { if(conexoes == null) { Conexao c = new Conexao(); conexoes.add(c); return c; }else { for(Conexao s:conexoes) { if(s.isLivre()) { return s; } } } return null; } } Acima, a classe denominada: PoolDeConexoes.java

       
      package BDAccess; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; public class Conexao { private Connection cnx; private boolean livre; public Conexao() { this.livre = true; Parametros prm = Parametros.getInstance(); String driverJDBC = prm.getParametros("driverJdbc"); String urlBanco = prm.getParametros("urlBanco"); String nomeUsuario = prm.getParametros("nomeUsuario"); String senha = prm.getParametros("senha"); try { Class.forName(driverJDBC); System.out.println("Driver importado!"); cnx = DriverManager.getConnection(urlBanco, nomeUsuario, senha); System.out.println("Conexão estabelecida"); }catch (Exception e) { System.out.println("Conexão não estabelecida!"); } } public Connection getConnection() { return cnx; } public void reserva() { if(livre) { livre = false; }else { System.out.println("Esta conexão já está em uso!"); } } public void libera() { livre = true; } public boolean isLivre() { return livre; } } Acima, a classe com o objeto Conexão. 
      package BDAccess; import java.io.IOException; import java.util.ArrayList; public class Main { public static void main(String[] args) throws IOException{ PoolDeConexoes plc = PoolDeConexoes.getInstance(); System.out.println(plc.getConexao()); } } E aqui o meu método principal. 

      Agradeço desde já pelo auxílio de vocês sobre a minha questão. 
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.