2011-05-17 67 views
0

我無法看到這個CREATE TABLE語句的問題。我已經加倍檢查,但無法找到錯誤。MySQL 1005錯誤 - 查詢出了什麼問題?

-- ----------------------------------------------------- 
-- Table `agentes` 
-- ----------------------------------------------------- 
CREATE TABLE IF NOT EXISTS `agentes` (
    `id` INT(11) NOT NULL AUTO_INCREMENT , 
    `codAgente` VARCHAR(8) NOT NULL , 
    `clave` VARCHAR(8) NOT NULL , 
    `nombre` VARCHAR(50) NOT NULL , 
    `apellido1` VARCHAR(50) NOT NULL , 
    `apellido2` VARCHAR(50) NOT NULL , 
    `email` VARCHAR(100) NOT NULL , 
    `usuarioDA` VARCHAR(45) NULL , 
    `passDA` VARCHAR(100) NULL , 
    PRIMARY KEY (`id`)) 
ENGINE = InnoDB 
COLLATE = latin1_spanish_ci; 

-- ----------------------------------------------------- 
-- Table `cola` 
-- ----------------------------------------------------- 
CREATE TABLE IF NOT EXISTS `colas` (
    `idCola` INT NOT NULL AUTO_INCREMENT , 
    `cliente` INT NOT NULL , 
    `nombre` VARCHAR(45) NOT NULL , 
    PRIMARY KEY (`idCola`) , 
    INDEX `fk_colas_clientes1` (`cliente` ASC) , 
    CONSTRAINT `fk_colas_clientes1` 
    FOREIGN KEY (`cliente`) 
    REFERENCES `clientes` (`idCliente`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION) 
ENGINE = InnoDB; 


-- ----------------------------------------------------- 
-- Table `relColaExt` 
-- ----------------------------------------------------- 
CREATE TABLE IF NOT EXISTS `relColaExt` (
    `id` INT NOT NULL AUTO_INCREMENT , 
    `codAgente` VARCHAR(8) NOT NULL , 
    `cola` VARCHAR(45) NOT NULL , 
    `prioridad` INT NOT NULL , 
    PRIMARY KEY (`id`) , 
    UNIQUE INDEX `id` (`id` ASC) , 
    INDEX `fk_relColaExt_agentes1` (`codAgente` ASC) , 
    INDEX `fk_relColaExt_colas1` (`cola` ASC) , 
    CONSTRAINT `fk_relColaExt_agentes1` 
    FOREIGN KEY (`codAgente`) 
    REFERENCES `agentes` (`codAgente`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION, 
    CONSTRAINT `fk_relColaExt_colas1` 
    FOREIGN KEY (`cola`) 
    REFERENCES `colas` (`nombre`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION) 
ENGINE = InnoDB; 

它拋出#1005 - 無法創建表 './centralita/relColaExt.frm'(錯誤:150)創建relColaExt表。

這是一個外鍵問題,但我無法看到有什麼問題。有人能幫助我嗎?

+0

你可以發佈客戶表嗎?此錯誤的一個常見原因是引用的列和外鍵列數據類型不同 – Jai 2011-05-17 11:42:33

+0

它會在不引用'客戶端'的relColaExt表上引發錯誤:( – 2011-05-17 11:45:06

回答

0

根據this comment上關於外鍵的MySQL手冊頁,可能是由於VARCHAR列的編碼不同。在表agentes中,您定義了一個排序規則,但在relColaExt中沒有。

嘗試在每個表上使用相同的排序規則(通過定義它或通過使用默認排序)。

+0

我試圖刪除排序規則,但它也不會't work。throw the same error。 – 2011-05-17 11:52:35

+0

嘗試在'colas.nombre'和'agentes.codAgente'中創建一個索引,就像'relColaExt.cola'和'relColaExt.codAgente'索引'的定義一樣,然後。 – 2011-05-17 11:58:36

+0

固定現在!感謝您的支持:-) – 2011-05-17 12:07:18