GARANTIR DESCONTO

Fórum Não cria tabela no MySQL #505393

25/12/2014

0

Tento executar o código abaixo gerado pelo ferramenta de modelagem do MySQL, mas fiquei sem entender:



CREATE TABLE IF NOT EXISTS `crud_devmedia`.`tb_pessoa` (
  `id_pessoa` INT(11) NOT NULL AUTO_INCREMENT,
  `nome` VARCHAR(45) NOT NULL,
  `cpf` FLOAT(11) NOT NULL,
  `dt_nasc` DATE NULL DEFAULT NULL,
  `sexo` CHAR(1) NOT NULL,
  `mini_bio` VARCHAR(100) NULL DEFAULT NULL,
  `cod_endereco` INT(11) NOT NULL,
  PRIMARY KEY (`id_pessoa`),
  INDEX `fk_tb_pessoa_tb_endereco1_idx` (`cod_endereco` ASC),
  CONSTRAINT `fk_tb_pessoa_tb_endereco1`
    FOREIGN KEY (`cod_endereco`)
    REFERENCES `crud_devmedia`.`tb_endereco` (`id_endereco`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1
COLLATE = latin1_swedish_ci;



erro

[img]http://arquivo.devmedia.com.br/forum/imagem/362748-20141225-192548.jpg[/img]
Janaina Mendes

Janaina Mendes

Responder

Post mais votado

26/12/2014

Deve ser porque vc está criando o INDEX e a FOREIGN KEY ao mesmo tempo q está criando a tabela e por isso o MySQL não está encontrando a tabela...
Cria a tabela depois cria o INDEX e a CONSTRAINT....

Marisiana Battistella

Marisiana Battistella
Responder

Gostei + 1

Mais Posts

26/12/2014

Janaina Mendes

Estranho, fiz isso na ferramenta de modelagem e me foi gerado isso.
Responder

Gostei + 0

26/12/2014

Marisiana Battistella

Chegou a fazer como falei?
Responder

Gostei + 0

26/12/2014

Fernando C

por via das duvidas verifique se a tabela tb_endereco foi criada corretamente (acho q tem q ser tipo innodb tb).
rodei esses 2 comandos no HeidiSQL numa "paulada" só e criou tudo certinho:

CREATE TABLE `tb_endereco` (
  `id_endereco` int(11) NOT NULL 
auto_increment,
  `rua` varchar(45) NOT NULL,
  PRIMARY KEY  
(`id_endereco`)
) ENGINE=innodb DEFAULT CHARSET=latin1;

CREATE TABLE IF NOT EXISTS `tb_pessoa` (
  `id_pessoa` INT(11) NOT NULL AUTO_INCREMENT,
  `nome` VARCHAR(45) NOT NULL,
  `cpf` FLOAT(11) NOT NULL,
  `dt_nasc` DATE NULL DEFAULT NULL,
  `sexo` CHAR(1) NOT NULL,
  `mini_bio` VARCHAR(100) NULL DEFAULT NULL,
  `cod_endereco` INT(11) NOT NULL,
  PRIMARY KEY (`id_pessoa`),
  INDEX `fk_tb_pessoa_tb_endereco1_idx` (`cod_endereco` ASC),
  CONSTRAINT `fk_tb_pessoa_tb_endereco1`
    FOREIGN KEY (`cod_endereco`)
    REFERENCES `tb_endereco` (`id_endereco`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1
COLLATE = latin1_swedish_ci;
Responder

Gostei + 0

26/12/2014

Marisiana Battistella

Qual é a ferramenta de modelagem que vc está utilizando, Janaina?
Responder

Gostei + 0

26/12/2014

Janaina Mendes

Chegou a fazer como falei?


Não, usei a ferramenta do proprio mysql.
Responder

Gostei + 0

26/12/2014

Janaina Mendes

Fernando C, eu tentei de varias formas criar as tabelas de acordo com os código, mas da sempre erro nessa tabela.
Responder

Gostei + 0

26/12/2014

Marisiana Battistella

Eu não lembro em qual SGBD aconteceu isso, mas já tive q criar a tabela e depois incluir a FK com um ALTER TABLE...
Responder

Gostei + 0

26/12/2014

Janaina Mendes

Acho que isso pode ser feito em qualquer um, mas isso vai depender se tem dados. eu acho apenas.
Responder

Gostei + 0

27/12/2014

Fernando C

mas da sempre erro nessa tabela

olha, eu testei várias vezes, não há nenhum problema com o código de criação dessa 2ª tabela.
1 problema muito comum é a chave primária da 1ª tabela ter sido criada como "unsigned"
ai vc tem que incluir esse atributo na 2ª;
tente pegar a mensagem de erro completa e verifique também se a 1ª tabela não foi criada como myisam.
há dados nessa 1ª tabela?
qualquer coisa poste a estrutura dessa 1ª tabela; acho q vale a pena.
verifique também se essa 2ª tabela já não foi criada antes (o Heidi, por exemplo, não atualiza o banco automaticamente).
Responder

Gostei + 0

27/12/2014

Janaina Mendes

Estou com um outro problema, não se tem haver, eu tento dropar esse banco mas ele excluir apenas a tabelas, o banco continua.
Responder

Gostei + 0

04/01/2015

Janaina Mendes

Finalmente consegui Dropar o banco, com uma reinstalação de tudo, porem acho que problema está na criação da tabela mesmo. não sei o que fazer.
Responder

Gostei + 0

04/01/2015

Marisiana Battistella

Você instalou o MySQL recentemente ou é uma versão que vc já trabalha há algum tempo?
Responder

Gostei + 0

05/01/2015

Janaina Mendes

Recentemente.
Responder

Gostei + 0

05/01/2015

Fernando C

mas conseguiu criar o banco? (ex: esse crud_devmedia)?
só por via das duvidas: vc não está alterando os bancos de sistema do Mysql (information_schema, mysql e test)?
e ultima tentativa: conseguiu criar a 1ª tabela? (sem ela a 2ª não vai rolar).
Responder

Gostei + 0

05/01/2015

Janaina Mendes

Consegui criar o banco, tentei criar a tabela como não consegui, apaguei o banco novamente.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar