Ir para conteúdo

POWERED BY:

Arquivado

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

CyriX

Problema na criação de tabela InnoDB

Recommended Posts

Olá pessoal, estou precisando de uma força

 

Estou tendo um problema na criação de uma tabela innodb, quando crio a tabela usuarios, planos em formato innodb, o banco aceita tranquilamente, porém quando tento criar a tabela compras, ele simplesmente não cria, qual é o problema no meu código?

 

-- -----------------------------------------------------
-- Table `teste`.`usuarios`
-- -----------------------------------------------------
DROP TABLE IF EXISTS usuarios;
CREATE  TABLE IF NOT EXISTS `teste`.`usuarios` (
 `id_usuario` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
 `usu_registrado` DATE NOT NULL,
 `usu_nome` VARCHAR(45) NOT NULL ,
 `usu_telefone` VARCHAR(20) NOT NULL ,
 `usu_email` VARCHAR(30) NOT NULL UNIQUE,
 `usu_login` VARCHAR(16) NOT NULL UNIQUE,
 `usu_password` VARCHAR(12) NOT NULL ,
 `usu_status` INT NOT NULL DEFAULT 1)
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `teste`.`planos`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `teste`.`planos` (
 `id_plano` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
 `plano` VARCHAR(45) NOT NULL ,
 `valor` INT NOT NULL ,
 PRIMARY KEY (`id_plano`) ,
 UNIQUE INDEX `id_plano_UNIQUE` (`id_plano` ASC) )
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `teste`.`compras`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `teste`.`compras` (
 `id_compra` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
 `id_usuario` INT NOT NULL ,
 `id_plano` INT NOT NULL ,
 `dat_compra` DATE NOT NULL ,
 `ped_estado` INT NOT NULL DEFAULT 1 ,
 INDEX `pk_user` (`id_usuario` ASC) ,
 INDEX `pk_planos` (`id_plano` ASC) ,
 PRIMARY KEY (`id_compra`) ,
 CONSTRAINT `pk_user`
   FOREIGN KEY (`id_usuario` )
   REFERENCES `teste`.`usuarios` (`id_usuario` ),
 CONSTRAINT `pk_planos`
   FOREIGN KEY (`id_plano` )
   REFERENCES `teste`.`planos` (`id_plano` ))
ENGINE = InnoDB;

 

o banco somente cria a tabela compras se eu retirar

ENGINE = InnoDB;

no final da minha tabela compras

 

valeu a força galera!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo CyriX seu erro é simples.

 

Quando se faz uma constraint os tipos de cada campo envolvidos

tem de estar identicos.

 

Na tabela de planos seu id_plano é INT UNSIGNED

e na tabela de compras não.

 

Adicione UNSIGNED no id_plano da tabela de compras e tudo estará resolvido.

 

Dúvidas poste ae.

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.