Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

J.2009

[Resolvido] Error Code: 1005

Recommended Posts

Boa noite,

To aprendendo banco de dados(mysql workbench que estou usando) e consegui criar algumas tabelas básico,

Mais em duas delas (tabela NF e contas_receber) em azul abaixo to recebendo a seguinte mensagem de erro:

Error Code: 1005 Can't create table 'vendas.nf' (errno: 150).

Não sei o que fazer espero que vocês possam me ajudar

Desde já agradeço.

 

CREATE DATABASE VENDAS;
USE VENDAS;

CREATE TABLE UF (
ID int unsigned NOT NULL auto_increment,
NOME_UF varchar(45) NOT NULL,
PRIMARY KEY(ID) )

CREATE TABLE Orgao_RG (
ID int unsigned NOT NULL auto_increment,
RG int unsigned NOT NULL,
PRIMARY KEY (ID) )

CREATE TABLE BANCO (
ID int unsigned NOT NULL,
NOME_BANCO varchar(20) NOT NULL,
PRIMARY KEY(ID) )

CREATE TABLE RECEBIMENTO (
ID INT unsigned NOT NULL auto_increment,
NOME_RECE varchar(20) NOT NULL,
PRIMARY KEY(ID) )

CREATE TABLE EST_CIVIL (
ID int unsigned NOT NULL auto_increment,
NOME_EST_CIVIL varchar(20) NOT NULL,
PRIMARY KEY (ID) )

CREATE TABLE TIPO_END (
ID int unsigned NOT NULL auto_increment,
TIPO_ENDE varchar(20) NOT NULL,
PRIMARY KEY(ID) )

CREATE TABLE FOR_PAGAMENTO (
ID int unsigned NOT NULL auto_increment,
DINHEIRO double NOT NULL default '0',
CARTAO_CREDITO double NOT NULL default '0',
CARTAO_DEBITO double NOT NULL default '0',
CHEQUE double NOT NULL default '0',
BOLETO_BANC double NOT NULL default '0',
PRIMARY KEY(ID) )

CREATE TABLE FORMA_PAGAMENTO (
ID int unsigned NOT NULL auto_increment,
DINHEIRO double NOT NULL default '0',
CARTAO_CREDITO double NOT NULL default '0',
CARTAO_DEBITO double NOT NULL default '0',
CHEQUE double NOT NULL default '0',
BOLETO_BANC double NOT NULL default '0',
PRIMARY KEY(ID) )

CREATE TABLE CLIENTE (
ID int unsigned NOT NULL auto_increment,
Orgao_RG_ID INT unsigned NOT NULL,
UF_ID int unsigned NOT NULL,
EST_CIVIL_ID int unsigned NOT NULL,
NOME VARCHAR(45) NOT NULL,
SEXO VARCHAR(1) NOT NULL,
CPF BIGINT(11) unsigned NOT NULL,
PRIMARY KEY(ID),
CONSTRAINT FK_CLIENTE_RG 	FOREIGN KEY (Orgao_RG_ID) REFERENCES Orgao_RG(ID),
CONSTRAINT FK_CLIENTE_UF 	FOREIGN KEY (UF_ID) REFERENCES UF(ID),
CONSTRAINT FK_CLIENTE_CIVIL FOREIGN KEY (EST_CIVIL_ID) 	REFERENCES EST_CIVIL(ID) )


CREATE TABLE CIDADE (
ID int unsigned NOT NULL auto_increment,
UF_ID int unsigned NOT NULL,
NOME_CIDADE VARCHAR(30) NOT NULL,
PRIMARY KEY(ID),
CONSTRAINT FK_CIDADE_UF FOREIGN KEY (UF_ID) REFERENCES UF(ID) )

CREATE TABLE BAIRRO (
ID int unsigned NOT NULL auto_increment,
CIDADE_ID int unsigned NOT NULL,
NOME_BAIRRO VARCHAR(45) NOT NULL,
PRIMARY KEY(ID),
CONSTRAINT FK_BAIRRO_CIDADE FOREIGN KEY (CIDADE_ID) REFERENCES CIDADE(ID) )

CREATE TABLE LOGRADOURO (
ID int unsigned NOT NULL auto_increment,
BAIRRO_ID int unsigned NOT NULL,
NOME_LOGRADOURO VARCHAR(45) NOT NULL,
CEP tinyint(8) unsigned NOT NULL,
PRIMARY KEY (ID),
CONSTRAINT FK_LOGRADOURO_BAIRRO FOREIGN KEY (BAIRRO_ID) REFERENCES BAIRRO(ID) )


CREATE TABLE ENDERECO (
ID int unsigned NOT NULL auto_increment,
TIPO_END_ID int unsigned NOT NULL,
LOGRADOURO_ID int unsigned NOT NULL,
CLIENTE_ID int unsigned NOT NULL,
PRIMARY KEY(ID),
CONSTRAINT FK_ENDERCO_TIPO_END 	 FOREIGN KEY (TIPO_END_ID) REFERENCES TIPO_END(ID),
CONSTRAINT FK_ENDERCO_LOGRADOURO FOREIGN KEY (LOGRADOURO_ID) REFERENCES LOGRADOURO(ID),
CONSTRAINT FK_ENDERCO_CLIENTE 	 FOREIGN KEY (CLIENTE_ID) REFERENCES CLIENTE(ID) )

[color="#008000"]CREATE TABLE NF (
ID int unsigned NOT NULL auto_increment,
FOR_PAGAMENTO_ID_id int NOT NULL,
CLIENTE_ID_id int NOT NULL,
PRIMARY KEY(ID),
CONSTRAINT FK_NF_FOR_PAGAMENTO FOREIGN KEY (FOR_PAGAMENTO_ID_id) REFERENCES FOR_PAGAMENTO(ID),
CONSTRAINT FK_CLIENTE_ID FOREIGN KEY (CLIENTE_ID_id) REFERENCES CLIENTE(ID)
);

CREATE TABLE CONTAS_RECEBER (
ID int unsigned NOT NULL auto_increment,
NF_ID int NOT NULL,
CONTAS_RECEBER_ID int NOT NULL,
BANCO_ID int NOT NULL,
CARTAO_ID int NOT NULL,
CLIENTE_ID int NOT NULL,
PRIMARY KEY(ID),CONSTRAINT FK_CONTAS_RECEBER_NF FOREIGN KEY (NF_ID) 		REFERENCES NF(ID), 
CONSTRAINT FK_CONTAS_RECEBER_CONTAS_RECEBER FOREIGN KEY (CONTAS_RECEBER_ID) REFERENCES CONTAS_RECEBER(ID), 
CONSTRAINT FK_CONTAS_RECEBER_BANCO FOREIGN KEY (BANCO_ID) 		REFERENCES BANCO(ID), 
CONSTRAINT FK_CONTAS_RECEBER_CARTAO FOREIGN KEY (CARTAO_ID) 	REFERENCES CARTAO(ID),
CONSTRAINT FK_CONTAS_RECEBER_CLIENTE FOREIGN KEY (CLIENTE_ID) 	REFERENCES CLIENTE(ID) [/color])

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você esqueceu de utilizar o parâmetro UNSIGNED nos campos da tabela NF, que são referência de campos primários e auto_incremment de outras tabelas. No caso os valores sempre terão que ser igual ou maior que zero.

 

E na tabela CONTAS_RECEBER, você esqueceu de criar a tabela CARTAO e fez referência a mesma.

 

Fiz alguns reparos no código, tá funcionando agora.

Comentei a linha que você fez referência sem ter criado a tabela. Em CONTAS_RECEBER.

 

CREATE DATABASE VENDAS;
USE VENDAS;

CREATE TABLE UF (
ID int unsigned NOT NULL auto_increment,
NOME_UF varchar(45) NOT NULL,
PRIMARY KEY(ID) );

CREATE TABLE Orgao_RG (
ID int unsigned NOT NULL auto_increment,
RG int unsigned NOT NULL,
PRIMARY KEY (ID) );

CREATE TABLE BANCO (
ID int unsigned NOT NULL,
NOME_BANCO varchar(20) NOT NULL,
PRIMARY KEY(ID) );

CREATE TABLE RECEBIMENTO (
ID INT unsigned NOT NULL auto_increment,
NOME_RECE varchar(20) NOT NULL,
PRIMARY KEY(ID) );

CREATE TABLE EST_CIVIL (
ID int unsigned NOT NULL auto_increment,
NOME_EST_CIVIL varchar(20) NOT NULL,
PRIMARY KEY (ID) );

CREATE TABLE TIPO_END (
ID int unsigned NOT NULL auto_increment,
TIPO_ENDE varchar(20) NOT NULL,
PRIMARY KEY(ID) );

CREATE TABLE FOR_PAGAMENTO (
ID int unsigned NOT NULL auto_increment,
DINHEIRO double NOT NULL default '0',
CARTAO_CREDITO double NOT NULL default '0',
CARTAO_DEBITO double NOT NULL default '0',
CHEQUE double NOT NULL default '0',
BOLETO_BANC double NOT NULL default '0',
PRIMARY KEY(ID) );

CREATE TABLE FORMA_PAGAMENTO (
ID int unsigned NOT NULL auto_increment,
DINHEIRO double NOT NULL default '0',
CARTAO_CREDITO double NOT NULL default '0',
CARTAO_DEBITO double NOT NULL default '0',
CHEQUE double NOT NULL default '0',
BOLETO_BANC double NOT NULL default '0',
PRIMARY KEY(ID) );

CREATE TABLE CLIENTE (
ID int unsigned NOT NULL auto_increment,
Orgao_RG_ID INT unsigned NOT NULL,
UF_ID int unsigned NOT NULL,
EST_CIVIL_ID int unsigned NOT NULL,
NOME VARCHAR(45) NOT NULL,
SEXO VARCHAR(1) NOT NULL,
CPF BIGINT(11) unsigned NOT NULL,
PRIMARY KEY(ID),
CONSTRAINT FK_CLIENTE_RG        FOREIGN KEY (Orgao_RG_ID) REFERENCES Orgao_RG(ID),
CONSTRAINT FK_CLIENTE_UF        FOREIGN KEY (UF_ID) REFERENCES UF(ID),
CONSTRAINT FK_CLIENTE_CIVIL FOREIGN KEY (EST_CIVIL_ID)  REFERENCES EST_CIVIL(ID) );


CREATE TABLE CIDADE (
ID int unsigned NOT NULL auto_increment,
UF_ID int unsigned NOT NULL,
NOME_CIDADE VARCHAR(30) NOT NULL,
PRIMARY KEY(ID),
CONSTRAINT FK_CIDADE_UF FOREIGN KEY (UF_ID) REFERENCES UF(ID) );

CREATE TABLE BAIRRO (
ID int unsigned NOT NULL auto_increment,
CIDADE_ID int unsigned NOT NULL,
NOME_BAIRRO VARCHAR(45) NOT NULL,
PRIMARY KEY(ID),
CONSTRAINT FK_BAIRRO_CIDADE FOREIGN KEY (CIDADE_ID) REFERENCES CIDADE(ID) );

CREATE TABLE LOGRADOURO (
ID int unsigned NOT NULL auto_increment,
BAIRRO_ID int unsigned NOT NULL,
NOME_LOGRADOURO VARCHAR(45) NOT NULL,
CEP tinyint(8) unsigned NOT NULL,
PRIMARY KEY (ID),
CONSTRAINT FK_LOGRADOURO_BAIRRO FOREIGN KEY (BAIRRO_ID) REFERENCES BAIRRO(ID) );


CREATE TABLE ENDERECO (
ID int unsigned NOT NULL auto_increment,
TIPO_END_ID int unsigned NOT NULL,
LOGRADOURO_ID int unsigned NOT NULL,
CLIENTE_ID int unsigned NOT NULL,
PRIMARY KEY(ID),
CONSTRAINT FK_ENDERCO_TIPO_END   FOREIGN KEY (TIPO_END_ID) REFERENCES TIPO_END(ID),
CONSTRAINT FK_ENDERCO_LOGRADOURO FOREIGN KEY (LOGRADOURO_ID) REFERENCES LOGRADOURO(ID),
CONSTRAINT FK_ENDERCO_CLIENTE    FOREIGN KEY (CLIENTE_ID) REFERENCES CLIENTE(ID) );

CREATE TABLE NF (
ID int unsigned NOT NULL auto_increment,
FOR_PAGAMENTO_ID_id int unsigned NOT NULL,
CLIENTE_ID_id int unsigned NOT NULL,
PRIMARY KEY(ID),
CONSTRAINT FK_NF_FOR_PAGAMENTO FOREIGN KEY (FOR_PAGAMENTO_ID_id) REFERENCES FOR_PAGAMENTO(ID),
CONSTRAINT FK_CLIENTE_ID FOREIGN KEY (CLIENTE_ID_id) REFERENCES CLIENTE(ID) );

CREATE TABLE CONTAS_RECEBER (
ID int unsigned NOT NULL auto_increment,
NF_ID int unsigned NOT NULL,
CONTAS_RECEBER_ID int unsigned NOT NULL,
BANCO_ID int unsigned NOT NULL,
CARTAO_ID int unsigned NOT NULL,
CLIENTE_ID int unsigned NOT NULL,
PRIMARY KEY(ID),
CONSTRAINT FK_CONTAS_RECEBER_NF FOREIGN KEY (NF_ID) REFERENCES NF(ID), 
CONSTRAINT FK_CONTAS_RECEBER_CONTAS_RECEBER FOREIGN KEY (CONTAS_RECEBER_ID) REFERENCES CONTAS_RECEBER(ID),
CONSTRAINT FK_CONTAS_RECEBER_BANCO FOREIGN KEY (BANCO_ID) REFERENCES BANCO(ID), 
/* CRIAR TABELA CATAO ====> CONSTRAINT FK_CONTAS_RECEBER_CARTAO FOREIGN KEY (CARTAO_ID) REFERENCES CARTAO(ID),*/
CONSTRAINT FK_CONTAS_RECEBER_CLIENTE FOREIGN KEY (CLIENTE_ID) REFERENCES CLIENTE(ID) );

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite ,

Muito obrigado JoseNeto.me agora deu certo,

mais além das mudanças que você fez esqueci de colocar a tabela CARTAO

Ai nunca iria rodar mesmo


CREATE TABLE CARTAO (
ID int unsigned NOT NULL auto_increment,
NOME_CARTAO VARCHAR(20) NOT NULL,
PRIMARY KEY(ID));

CREATE TABLE NF (
ID int unsigned NOT NULL auto_increment,
FOR_PAGAMENTO_ID_id int unsigned NOT NULL,
CLIENTE_ID_id int unsigned NOT NULL,
PRIMARY KEY(ID),
CONSTRAINT FK_NF_FOR_PAGAMENTO FOREIGN KEY (FOR_PAGAMENTO_ID_id) REFERENCES FOR_PAGAMENTO(ID),
CONSTRAINT FK_CLIENTE_ID FOREIGN KEY (CLIENTE_ID_id) REFERENCES CLIENTE(ID) );

CREATE TABLE CONTAS_RECEBER (
ID int unsigned NOT NULL auto_increment,
NF_ID int unsigned NOT NULL,
CONTAS_RECEBER_ID int unsigned NOT NULL,
BANCO_ID int unsigned NOT NULL,
CARTAO_ID int unsigned NOT NULL,
CLIENTE_ID int unsigned NOT NULL,
PRIMARY KEY(ID),
CONSTRAINT FK_CONTAS_RECEBER_NF FOREIGN KEY (NF_ID) REFERENCES NF(ID), 
CONSTRAINT FK_CONTAS_RECEBER_CONTAS_RECEBER FOREIGN KEY (CONTAS_RECEBER_ID) REFERENCES CONTAS_RECEBER(ID),
CONSTRAINT FK_CONTAS_RECEBER_BANCO FOREIGN KEY (BANCO_ID) REFERENCES BANCO(ID), 
CONSTRAINT FK_CONTAS_RECEBER_CARTAO FOREIGN KEY (CARTAO_ID) REFERENCES CARTAO(ID),
CONSTRAINT FK_CONTAS_RECEBER_CLIENTE FOREIGN KEY (CLIENTE_ID) REFERENCES CLIENTE(ID) );
Fiz isso e funcionou legal

Muito obrigado

Problema resolvido!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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