1
VARCHAR 열에 외래 키를 가져 오는 데 문제가 있습니다.MySql/Cloudbees ForeignKey로 VARCHAR
이상적으로 나는 이것을 복합 FK로 사용하고 싶습니다 (추가하려고 시도했을 때 알 수 있듯이).
로컬, MySQL은 5.6에서이 스크립트를 실행 나는 오류 번호를 얻을 수 1215 나는 150
내가 데이터 유형 인에 대한 문제에 여기에 다른 질문을 본 적이 잘못을 얻을 CloudBees에 스크립트를 실행하는 경우 정확히 똑같은데, 나는 당신이 스크립트에서 볼 수있는 것처럼 그것을 확인했다.
/* 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 */
아차! 외래 키 필드// FK - REGION.ID /는 이제 stackoverflow 사용자의 응답을 기다리거나// 코멘트 */업데이트하는 것을 잊었습니다. –