J.2009 0 Denunciar post Postado Novembro 22, 2010 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
JoseNeto.me 0 Denunciar post Postado Novembro 22, 2010 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
J.2009 0 Denunciar post Postado Novembro 23, 2010 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 legalMuito obrigado Problema resolvido! Compartilhar este post Link para o post Compartilhar em outros sites