Klucze obce i błędy MySQL

Mam następujący skrypt do utworzenia tabeli w MySQL w wersji 5.1, która ma odnosić się do 3 innych tabel. Wszystkie 3 tabele zostały utworzone przy użyciu InnoDB, a wszystkie 3 tabele mają kolumnę ID zdefiniowaną jako INT.

Stworzyłem inne tabele z powodzeniem, które odwołują się do ACCOUNT i PERSON, jednak jest to pierwsza tabela, która odwołuje się do ADDRESS, więc poniżej podałem definicję tej tabeli, jako uruchomioną.

Błąd, który otrzymuję, to ERROR 1005 (HY000) z errno 150, co rozumiem, że odnosi się do tworzenia klucza obcego.

Skrypt, który się nie powiedzie (dodatkowe kolumny usunięte dla uproszczenia):

CREATE TABLE WORK_ORDER (
    ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    ACCOUNT_ID INT NOT NULL,
    CUSTOMER_ID INT NOT NULL,
    SALES_ID INT,
    TRADES_ID INT,
    LOCATION_ID INT NOT NULL,
    INDEX CUST_INDEX(CUSTOMER_ID),
    INDEX SALES_INDEX(SALES_ID),
    INDEX TRADES_INDEX(TRADES_ID),
    INDEX ACCOUNT_INDEX(ACCOUNT_ID),
    INDEX LOCATION_INDEX(LOCATION_ID),
    FOREIGN KEY (CUSTOMER_ID) REFERENCES PERSON(ID) ON DELETE CASCADE,
    FOREIGN KEY (SALES_ID) REFERENCES PERSON(ID) ON DELETE SET NULL,
    FOREIGN KEY (TRADES_ID) REFERENCES PERSON(ID) ON DELETE SET NULL,
    FOREIGN KEY (ACCOUNT_ID) REFERENCES ACCOUNT(ID) ON DELETE CASCADE,
    FOREIGN KEY (LOCATION_ID) REFERENCES ADDRESS(ID) ON DELETE SET NULL
) ENGINE=InnoDB;

Instrukcja SQL użyta do utworzenia tabeli ADDRESS znajduje się poniżej (dodatkowe kolumny zostały usunięte dla uproszczenia).

CREATE TABLE ADDRESS (
    ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    PERSON_ID INT NOT NULL,
    ACCOUNT_ID INT NOT NULL,
    ADDRESS_L1 VARCHAR(50),
    ADDRESS_L2 VARCHAR(50),
    CITY VARCHAR(25),
    PROVINCE VARCHAR(20),
    POSTAL_CODE VARCHAR(6),
    COUNTRY VARCHAR(25),
    INDEX CUST_INDEX(PERSON_ID),
    INDEX ACCOUNT_INDEX(ACCOUNT_ID),
    FOREIGN KEY (ACCOUNT_ID) REFERENCES ACCOUNT(ID) ON DELETE CASCADE,
    FOREIGN KEY (PERSON_ID) REFERENCES PERSON(ID) ON DELETE CASCADE
) ENGINE=InnoDB;

Przejrzałem tutaj kilka pytań dotyczących podobnych problemów, ale większość zdaje się być zduplikowanymi definicjami i niedopasowanymi typami pól, a także niektórymi, które nie używają InnoDB dla jednej lub drugiej tabeli. Jednak żaden z nich nie wydaje się być problemem. Jakieś pomysły?

questionAnswers(1)

yourAnswerToTheQuestion