1
resposta

Erro 1064 quando tento compilar o código

Está acontecendo esse erro direto, o que pode ser?

Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 6
SQL Code:
        ALTER TABLE `Loja`.`Telefone` 
        COLLATE = DEFAULT ,
        CHANGE COLUMN `Telefone` `Telefone` DOUBLE NOT NULL ,
        DROP PRIMARY KEY,
        ADD PRIMARY KEY (`Telefone`, `CodCliente`),
        ADD INDEX `fk_Telefone_Cliente_idx` (`CodCliente` ASC) VISIBLE

O código completo do meu banco de dados:

-- MySQL Workbench Forward Engineering

SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

-- -----------------------------------------------------
-- Schema Loja
-- -----------------------------------------------------

-- -----------------------------------------------------
-- Schema Loja
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `Loja` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
USE `Loja` ;

-- -----------------------------------------------------
-- Table `Loja`.`Cliente`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Loja`.`Cliente` (
  `CodCliente` INT(10) NOT NULL,
  `NomeCliente` VARCHAR(60) NOT NULL,
  `Logradouro` VARCHAR(100) NOT NULL,
  `Numero` VARCHAR(5) NULL DEFAULT NULL,
  `Complemento` VARCHAR(5) NULL DEFAULT NULL,
  `Bairro` VARCHAR(100) NOT NULL,
  `CEP` DOUBLE NOT NULL,
  `Cidade` VARCHAR(50) NOT NULL,
  `UF` VARCHAR(2) NOT NULL,
  PRIMARY KEY (`CodCliente`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;


-- -----------------------------------------------------
-- Table `Loja`.`Telefone`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Loja`.`Telefone` (
  `Telefone` DOUBLE NOT NULL,
  `CodCliente` INT(10) NOT NULL,
  PRIMARY KEY (`Telefone`, `CodCliente`),
  INDEX `fk_Telefone_Cliente_idx` (`CodCliente` ASC) VISIBLE,
  CONSTRAINT `fk_Telefone_Cliente`
    FOREIGN KEY (`CodCliente`)
    REFERENCES `Loja`.`Cliente` (`CodCliente`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `Loja`.`Pedido`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Loja`.`Pedido` (
  `NumPedido` INT(10) NOT NULL,
  `DataPedido` DATETIME NOT NULL,
  `ValorPedido` DECIMAL(15,2) NOT NULL,
  PRIMARY KEY (`NumPedido`),
  CONSTRAINT `fk_Pedido_Cliente1`
    FOREIGN KEY (`NumPedido`)
    REFERENCES `Loja`.`Cliente` (`CodCliente`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `Loja`.`Produto`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Loja`.`Produto` (
  `CodigoProduto` INT(10) NOT NULL,
  `NomeProduto` VARCHAR(100) NOT NULL,
  `ValorProduto` DECIMAL(15,2) NOT NULL,
  PRIMARY KEY (`CodigoProduto`))
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `Loja`.`Item_Pedido`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Loja`.`Item_Pedido` (
  `NumPedido` INT(10) NOT NULL,
  `CodigoProduto` INT(10) NOT NULL,
  `Quantidade` VARCHAR(100) NOT NULL,
  PRIMARY KEY (`NumPedido`, `CodigoProduto`),
  INDEX `fk_Item_Pedido_Produto1_idx` (`CodigoProduto` ASC) VISIBLE,
  CONSTRAINT `fk_Item_Pedido_Pedido1`
    FOREIGN KEY (`NumPedido`)
    REFERENCES `Loja`.`Pedido` (`NumPedido`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_Item_Pedido_Produto1`
    FOREIGN KEY (`CodigoProduto`)
    REFERENCES `Loja`.`Produto` (`CodigoProduto`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;

Fiz no Workbench mysql. Isso acontece quando adiciono uma Foreing Key, se eu não adiciono ela, ai dá certo.

1 resposta

Adiciona Foreing Key onde? Desculpa, tem bastante código aqui e fiquei um pouco confuso de como poderia te ajudar.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software