Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 General SQL Server Forums
 New to SQL Server Programming
 Help with code

Author  Topic 

dioval
Starting Member

2 Posts

Posted - 2011-11-23 : 14:47:12
Hi!

Please someone can help me with the code bellow?
I'm having sucess creating the tables but having trouble when I try to define the constraints.
Thanks!

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;

sunitabeck
Master Smack Fu Yak Hacker

5155 Posts

Posted - 2011-11-23 : 14:52:48
Add the constraints one at a time. For example, instead of:
ALTER TABLE CLIENTES
ADD CONSTRAINT PK_CLIENTES PRIMARY KEY (CODIGO_CLIENTE)
ADD CONSTRAINT FK_CLIENTES FOREIGN KEY (BAIRROS_NOME_BAIRRO) REFERENCES BAIRROS;
use this
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;
Go to Top of Page

dioval
Starting Member

2 Posts

Posted - 2011-11-24 : 14:30:03
Perfect!

Thank you very much sunitabeck!
Go to Top of Page
   

- Advertisement -