MYSQL Создание таблиц с внешними ключами с ошибками - PullRequest
1 голос
/ 02 марта 2012

Пытаетесь создать несколько новых таблиц с внешними ключами, но меня догоняют, вот код и полученная ошибка, я думаю, это как-то связано с моим внешним ключом?

Ответы [ 2 ]

1 голос
/ 02 марта 2012

У вас есть пропущенная запятая после столбца с логотипом и отсутствующий обратный кавычк в конце имени столбца CustomerID в определении внешнего ключа.

Как только вы исправите их и повторно запустите DDL, выобнаружит, что таблица CustomerContact не имеет столбца с именем CustomerID, поэтому вы должны добавить его тоже.

  DROP TABLE IF EXISTS `Customer`;
    CREATE TABLE `Customer` ( 
        `CustomerID`            INT UNSIGNED AUTO_INCREMENT,
        `Customer_Number`        VARCHAR(100),
        `Customer_Name`            VARCHAR(100),
        `Website`                VARCHAR(255),
        `Logo`                    VARCHAR(100),
        PRIMARY KEY(`CustomerID`)
    ) ENGINE=InnoDB DEFAULT CHARSET=UTF8 AUTO_INCREMENT=1;


    DROP TABLE IF EXISTS `CustomerContact`;
    CREATE TABLE `CustomerContact` (

        `ContactID`                INT UNSIGNED AUTO_INCREMENT,
        `Division`                VARCHAR(100),
        `Contact`                VARCHAR(100),
        `Address`                VARCHAR(255),
        `Phone`                    VARCHAR(100),
        `Fax`                    VARCHAR(100),
        `Email`                    VARCHAR(100),
        `Mobile`                VARCHAR(100),
        PRIMARY KEY(`ContactID`),
        CONSTRAINT FOREIGN KEY (`CustomerID`) REFERENCES Customer(`CustomerID`) ON DELETE CASCADE ON UPDATE CASCADE
    ) ENGINE=InnoDB DEFAULT CHARSET=UTF8 AUTO_INCREMENT=1;
0 голосов
/ 02 марта 2012

Вы пропустили запятую:

    `Logo`                    VARCHAR(100),
    PRIMARY KEY(`CustomerID`)

и т. Д.

Также в конце стоит галочка:

    CONSTRAINT FOREIGN KEY (`CustomerID`) REFERENCES Customer(`CustomerID`) ON DELETE CASCADE ON UPDATE CASCADE
...