Shinhatsubai Posted November 23, 2011 Report Share Posted November 23, 2011 Boa tarde,Não consigo identificar onde estou errando no código abaixo, por favor, alguém pode dar uma força? ;)Na criação das tabelas está tudo ok, porém estou encontrando problemas na hora de definir as constraints.Obrigado!CREATE DATABASE dbPIZZARIA GO USE dbPIZZARIA CREATE TABLE BAIRROS ( NOME_BAIRRO VARCHAR(30) NOT NULL, TEMPO_ESPERA NUMERIC(03) NOT NULL, ); CREATE TABLE CARDAPIO ( NUM_CARDAPIO INTEGER NOT NULL, TIPO_CARDAPIO CHAR(01) default 'P' NOT NULL, DESCRICAO VARCHAR(40) NOT NULL, TAMANHO_PIZZA CHAR(01) default 'M' NULL, INGREDIENTES VARCHAR(750) NULL, PRECO_TABELA NUMERIC(4,2) NOT NULL, ); CREATE TABLE CLIENTES ( CODIGO_CLIENTE INTEGER NOT NULL, NOME_CLIENTE VARCHAR(80) NOT NULL, ENDERECO_CLIENTE VARCHAR(100) NOT NULL, BAIRROS_NOME_BAIRRO VARCHAR(30) NOT NULL, TELEFONE_CLIENTE VARCHAR(11) NOT NULL, ); CREATE TABLE ENTREGADOR ( CODIGO_ENT INTEGER NOT NULL, TEL_CELULAR VARCHAR(11) NOT NULL, ); CREATE TABLE FUNCIONARIOS ( CODIGO_FUNC INTEGER NOT NULL, NOME_FUNC VARCHAR(80) NOT NULL, TIPO_FUNC CHAR(01) default 'A' NOT NULL, END_FUNC VARCHAR(100) NOT NULL, TELEFONE VARCHAR(11) NOT NULL, ); CREATE TABLE ITEM_PEDIDO ( PEDIDOS_NUM_PEDIDO INTEGER NOT NULL, CARDAPIO_NUM_CARDAPIO INTEGER NOT NULL, QUANTIDADE NUMERIC(3) NOT NULL, preço NUMERIC(4,2) NOT NULL, ); CREATE TABLE PEDIDOS ( NUM_PEDIDO INTEGER NOT NULL, DATA_EMISSAO DATETIME NOT NULL, VALOR_TOT_PED NUMERIC(4,2) NOT NULL, FUNCIONARIOS_CODIGO_FUNC INTEGER NOT NULL, CLIENTES_CODIGO_CLIENTE INTEGER NOT NULL, ENTREGADOR_CODIGO_ENT INTEGER NOT NULL, TIPO_PAGTO CHAR(01) default 'D' NOT NULL, ); -------------------------------------------------------------------------------------------------------------------------------------------- USE dbPIZZARIA ALTER TABLE BAIRROS ADD CONSTRAINT PK_BAIRRO PRIMARY KEY (NOME_BAIRRO); ALTER TABLE ENTREGADOR ADD CONSTRAINT PK_ENTREGADOR PRIMARY KEY (CODIGO_ENT); ALTER TABLE CLIENTES ADD CONSTRAINT PK_CLIENTES PRIMARY KEY (CODIGO_CLIENTE) ADD CONSTRAINT FK_CLIENTES FOREIGN KEY (BAIRROS_NOME_BAIRRO) REFERENCES BAIRROS; ALTER TABLE CARDAPIO ADD CONSTRAINT PK_CARDAPIO PRIMARY KEY (NUM_CARDAPIO) ADD CONSTRAINT CH1_CARDAPIO CHECK(TIPO_CARDAPIO IN('B','E','P')) ADD CONSTRAINT CH2_CARDAPIO CHECK(TAMANHO_PIZZA IN('G','M','P')); ALTER TABLE FUNCIONARIOS ADD CONSTRAINT PK_FUNCIONARIOS PRIMARY KEY (CODIGO_FUNC) ADD CONSTRAINT CH_FUNCIONARIOS CHECK(TIPO_FUNC IN('A','G','P')); ALTER TABLE PEDIDOS ADD CONSTRAINT PK_PEDIDOS PRIMARY KEY (NUM_PEDIDO) ADD CONSTRAINT FK1_PEDIDOS FOREIGN KEY (FUNCIONARIOS_CODIGO_FUNC) REFERENCES FUNCIONARIOS ADD CONSTRAINT FK2_PEDIDOS FOREIGN KEY (CLIENTES_CODIGO_CLIENTE) REFERENCES CLIENTES ADD CONSTRAINT FK3_PEDIDOS FOREIGN KEY (ENTREGADOR_CODIGO_ENT) REFERENCES ENTREGADOR ADD CONSTRAINT CH_PEDIDOS CHECK(TIPO_PAGTO IN('C','D','T')); ALTER TABLE ITEM_PEDIDO ADD CONSTRAINT PK1_ITEM_PEDIDO PRIMARY KEY (PEDIDOS_NUM_PEDIDO) ADD CONSTRAINT PK2_ITEM_PEDIDO PRIMARY KEY (CARDAPIO_NUM_CARDAPIO) ADD CONSTRAINT FK1_ITEM_PEDIDO FOREIGN KEY (PEDIDOS_NUM_PEDIDO) REFERENCES PEDIDOS ADD CONSTRAINT FK2_ITEM_PEDIDO FOREIGN KEY (CARDAPIO_NUM_CARDAPIO) REFERENCES CARDAPIO; Quote Link to comment Share on other sites More sharing options...
0 fulvio Posted November 24, 2011 Report Share Posted November 24, 2011 Bom dia Shinhatsubai, você terá q criar as PK´s primeiro. Depois da criação das PK´s, você roda o script para criar as FK´s. A sintaxe quando é criada mais de uma constraint está incorreta. Ex: ALTER TABLE CLIENTES ADD CONSTRAINT PK_CLIENTES PRIMARY KEY (CODIGO_CLIENTE) ADD CONSTRAINT FK_CLIENTES FOREIGN KEY (BAIRROS_NOME_BAIRRO) REFERENCES BAIRROS; Seria: ALTER TABLE CLIENTES ADD CONSTRAINT PK_CLIENTES PRIMARY KEY (CODIGO_CLIENTE) ALTER TABLE CLIENTES ADD CONSTRAINT FK_CLIENTES FOREIGN KEY (BAIRROS_NOME_BAIRRO) REFERENCES BAIRROS; Na tabela ITEM_PEDIDO você está tentando criar 2 PK´s. Quote Link to comment Share on other sites More sharing options...
Question
Shinhatsubai
Boa tarde,
Não consigo identificar onde estou errando no código abaixo, por favor, alguém pode dar uma força? ;)
Na criação das tabelas está tudo ok, porém estou encontrando problemas na hora de definir as constraints.
Obrigado!
--------------------------------------------------------------------------------------------------------------------------------------------Link to comment
Share on other sites
1 answer to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.