CyriX 0 Denunciar post Postado Abril 22, 2010 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
Periscuelo 20 Denunciar post Postado Abril 22, 2010 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