Jump to content
Analinee3

ERROR: syntax error at or near "PRIMARY"

Recommended Posts

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)

    );

Screenshot_2019-05-04-12-09-41.png

Share this post


Link to post
Share on other sites

Acho que tem uma vírgula entre as definições da PK e FK.

Share this post


Link to post
Share on other sites

Segue o exemplo de uma fonte confiável.

 

Rode um "create" por vez.

Share this post


Link to post
Share on other sites

1. nao existe "primary key... references".
2. algumas colunas estão sendo definidas como primary e foreign key ao mesmo tempo, ex: tabelas telefone e email_cliente. verifique isso, pq uma chave primaria tem que ser unica e nao nula, portanto o cliente será obrigado a ter um telefone e um email e apenas um...

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Pedro Batista Lopes
      Olá pessoal alguém pode me ajudar estou com uma duvida, espero que vocês consigam me ajudar,
      Faço uma busca no banco de dados com mysql, depois faço um laço de repetição foreach e pego os dados do banco e jogo em uma tabel, 
      gostaria de que um campo desse laço se repetisse varias vezes.
      No banco ele pegas as informações de nota fiscal, cliente,nome do cliente e a soma das notas por um período de tempo,
      gostaria que repetisse esse período, que no caso é um ano de janeiro a dezembro.
      segue o codigo.
      </form> <?php $dataIncio = $_POST['data-ini']; $dataFim = $_POST['data-fim']; $dataIncio = date('d/m/Y', strtotime($dataIncio)); $dataFim = date('d/m/Y', strtotime($dataFim)); $buscaNotas = $db->prepare("select a.empresa, a.cliente, b.nom_cliente, e.cod_uni_feder, d.cod_repres, b.cod_tip_cli, count(a.nota_fiscal) as QTD_MES from fat_nf_mestre a join clientes b on (b.cod_cliente = a.cliente) join fat_nf_item c on (c.empresa = a.empresa and c.trans_nota_fiscal = a.trans_nota_fiscal) join pedidos d on (d.cod_empresa = c.empresa and d.num_pedido = c.pedido) join cidades e on (e.cod_cidade = b.cod_cidade) where a.empresa = '10' and dat_hor_emissao between EXTEND(MDY(01,01,2019)) and EXTEND(MDY(01,30,2019)) // esse é o campo que gostaria que repetisse a data está ///01/01/2019 a 01/30/2019 gostaria de um jeito para mudar 01/02//2019 a 30/02/2019 assim por diante. and d.cod_tip_carteira = '1' --and b.nom_cliente = 'MAGAZINE LUIZA S/A' --and b.cod_cliente = '047960950075482' and c.seq_item_nf = '1' and a.sit_nota_fiscal <> 'C' group by 1,2,3,4,5,6"); $buscaNotas->execute(); $linha = $buscaNotas->fetchAll(PDO::FETCH_ASSOC); ?> <table border="1px solid black" class="table col-sm-12 table-striped table-hover"> <thead class="thead-dark "> <tr> <th>Empresa</th> <th>Cliente</th> <th>Nome do cliente</th> <th>Uni_Feder</th> <th>Codigo Representante</th> <th>Cod_tipo_cli</th> <th>janeiro</th>// aqui eu faria janeiro, feveiro, março, abril.....até dezembro <th>Fevereiro</th> </tr> </thead> <?php foreach ($linha as $listar) { ?> <tr> <td><?= $listar['empresa'];?></td> <td><?=$listar['cliente']; ?></td> <td><?=$listar['nom_cliente']; ?></td> <td><?=$listar['cod_uni_feder']; ?></td> <td><?=$listar['cod_repres']; ?></td> <td><?=$listar['cod_tip_cli']; ?></td> <td><?=$listar['qtd_mes']; ?></td> // aqui é a saida onde queria que saisse o restante dos dados. </tr> <?php } ?> </table> <?php   
    • By vdso
      Bom dia! Sou novo aqui no forum e tambem estou iniciando com sql, onde trabalho preciso encontrar uma determinada tabela e me falaram para procurar no dicionário de dados, como faço isso?
    • By device
      Olá pessoal. Bom dia...
      Preciso somar campos de uma tabela, mas de acordo com critérios que estão na base de dados
      Lá tenho lançado valores como segue.
      MES - ANO - ITEM - VALOR
      O campo mes vai de Janeiro a dezembro, setados em Combobox
      O campo ANO, ITEM selecionados tb em ComboBox e Valor preenchido em campo Edit
      Agora é o problema. 
      Preciso filtrar a soma de acordo com o MES, ANO e ITEM e somar seus valores que estão nos campos Edit
      Por exemplo. 
      Somar todos os Valores, de acordo com o MES, ANO e ITEM (farmácia ou mercado) por exemplo e colocar em uma var.
      O Combobox ITEM, assim como mes de 30 dias e Ano de 2019 à 20xx, tem itens, como Farmacia, mercado, medico, dentista, exames, etc    
      Alguma santa alma poderia dar uma ajuda?  
    • By teylorg
      Olá, boa tarde, estou com este erro quando importo a database e não sei como resolver.
       
      -- Copiando estrutura para view onnde.mega_anunciantes -- Criando tabela temporária para evitar erros de dependência de VIEW CREATE TABLE `mega_anunciantes` ( `cod_mega` INT(13) UNSIGNED NOT NULL, `razao` VARCHAR(250) NOT NULL COLLATE 'latin1_swedish_ci', `nome` VARCHAR(250) NOT NULL COLLATE 'latin1_swedish_ci', `cnpj` VARCHAR(200) NOT NULL COLLATE 'latin1_swedish_ci', `inscricao` VARCHAR(50) NOT NULL COLLATE 'latin1_swedish_ci', `slogo` VARCHAR(200) NOT NULL COLLATE 'latin1_swedish_ci', `pais` VARCHAR(200) NOT NULL COLLATE 'latin1_swedish_ci', `estado` VARCHAR(200) NOT NULL COLLATE 'latin1_swedish_ci', `cidade` VARCHAR(100) NOT NULL COLLATE 'latin1_swedish_ci', `endereco` VARCHAR(150) NOT NULL COLLATE 'latin1_swedish_ci', `bairro` VARCHAR(200) NOT NULL COLLATE 'latin1_swedish_ci', `cep` VARCHAR(50) NOT NULL COLLATE 'latin1_swedish_ci', `complemento` VARCHAR(200) NOT NULL COLLATE 'latin1_swedish_ci', `email` VARCHAR(200) NOT NULL COLLATE 'latin1_swedish_ci[...]
    • By whoopic
      Olá a todos!
      Estou a tentar perceber qual a melhor abordagem para:
      (Campos/Colunas:)
      A - Moeda
      B - Igual a A
      C - (A+B)/2
      D - Caixa de seleção7Checkbox : Se "ligada": C=C/2
       
      Preciso que estes campos sejam "persistentes", para que os possa usar em relatórios.
       
      Pensei em colunas "computadas". Consigo realizar tudo isto com essa abordagem?
      Tentei por exemplo no campo B, usando o campo de fórmula para coluna computada e inserindo o nome da coluna A.
       
       
      Pode alguém dar-me um empurrãozinho?
      Obrigado desde já.
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.