У меня возникают трудности с получением внешнего ключа для столбца VARCHAR.
В идеале я хотел бы иметь его как составной FK (как вы можете видеть из моей попытки добавить его).
Локально при запуске этого скрипта на MySQL 5.6 я получаю ошибку # 1215. При запуске скрипта на CloudBees я получаю err 150
Я видел другие вопросы здесь по поводу того, что типы данных точно такие же, я проверил это, как вы можете видеть из сценария.
/* Start of REGION table */
CREATE TABLE REGION (
ID INTEGER NOT NULL AUTO_INCREMENT, /* Unique Identifier */
RORDER INTEGER, /* Order to be displayed by (currently unused) */
LANG VARCHAR(3) DEFAULT 'en' , /* Language of this entry */
NAME VARCHAR(30) NOT NULL, /* Region Name */
DESCR VARCHAR(50) DEFAULT '' NOT NULL, /* Region Desc */
ACTIVE INTEGER DEFAULT '1' NOT NULL, /* Is item active or not */
CDATE TIMESTAMP DEFAULT 0, /* Create Date */
MODDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, /* Last Update Date */
INSUSER VARCHAR(20) DEFAULT 'SYSTEM' NOT NULL, /* User that inserted this entry */
MODUSER VARCHAR(20), /* User that last modified this entry */
PRIMARY KEY(id)
) engine InnoDB;
COMMIT;
ALTER TABLE REGION ADD CONSTRAINT UNIQUE (LANG, NAME);
/* End of REGION table */
/* Start of LOCATION table */
CREATE TABLE LOCATION (
ID INTEGER NOT NULL AUTO_INCREMENT, /* Unique Identifier */
REGIONNAME VARCHAR(30) NOT NULL, /* FK - REGION.ID */
LORDER INTEGER, /* Order to be displayed by (currently unused) */
NAME VARCHAR(30) DEFAULT '' NOT NULL, /* Location Name (FK Key) */
LANG VARCHAR(3) DEFAULT 'en' , /* Language of this entry */
DESCR VARCHAR(50) DEFAULT '' NOT NULL, /* Location Desc */
ACTIVE INTEGER DEFAULT '1' NOT NULL, /* Is item active or not */
CDATE TIMESTAMP DEFAULT 0, /* Create Date */
MODDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, /* Last Update Date */
INSUSER VARCHAR(20) DEFAULT 'SYSTEM' NOT NULL, /* User that inserted this entry */
MODUSER VARCHAR(20), /* User that last modified this entry */
PRIMARY KEY(id)
) engine InnoDB;
ALTER TABLE LOCATION ADD CONSTRAINT FK_LOCATION_REGION FOREIGN KEY (REGIONNAME, LANG) REFERENCES REGION(NAME, LANG) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE LOCATION ADD CONSTRAINT UNIQUE (LANG, NAME);
COMMIT;
/* End of LOCATION table */