mysql에서 동일한 문에 열과 외래 키를 추가 할 수 있습니까? 그리고 fk를 추가하기위한 적절한 구문은 무엇입니까?
내 SQL은 다음과 같습니다.
ALTER TABLE database.table
ADD COLUMN columnname INT DEFAULT(1),
FOREIGN KEY (fk_name) REFERENCES reftable(refcolumn) ON DELETE CASCADE;
… 및 동반 오류 메시지 :
SQL 구문에 오류가 있습니다. 4 행의 ‘FOREIGN KEY (fk_name) REFERENCES reftable (refcolumn) ON DELETE CASCADE’근처에서 사용할 올바른 구문은 MySQL 서버 버전에 해당하는 설명서를 확인하십시오.
답변
이 시도:
ALTER TABLE database.table
ADD COLUMN columnname INT DEFAULT(1),
ADD FOREIGN KEY fk_name(fk_column) REFERENCES reftable(refcolumn) ON DELETE CASCADE;
답변
다음 쿼리는 alter 쿼리로 열을 추가하고 제약 조건 쿼리는 단일 mysql 쿼리에서 FK로 만듭니다. 이렇게 할 수 있습니다.
통사론:
ALTER TABLE `SCHEMANAME`.`TABLE1`
ADD COLUMN `FK_COLUMN` BIGINT(20) NOT NULL,
ADD CONSTRAINT `FK_TABLE2_COLUMN` FOREIGN KEY (`FK_COLUMN`)
REFERENCES `SCHEMANAME`.`TABLE2`(`PK_COLUMN`);
예:
ALTER TABLE `USERDB`.`ADDRESS_TABLE`
ADD COLUMN `USER_ID` BIGINT(20) NOT NULL AFTER `PHONE_NUMBER`,
ADD CONSTRAINT `FK_CUSTOMER_TABLE_CUSTOMER_ID` FOREIGN KEY (`USER_ID`)
REFERENCES `USERDB`.`CUSTOMER_TABLE`(`CUSTOMER_ID`);
답변
이것은 약간 단순화 될 수 있습니다. “FOREIGN KEY”앞에 “ADD”키워드를 추가하기 만하면됩니다. 아래에 예제를 추가하십시오.
ALTER TABLE database.table
ADD COLUMN columnname INT DEFAULT(1),
ADD FOREIGN KEY (fk_name) REFERENCES reftable(refcolumn) ON DELETE CASCADE;
답변
사용할 수 있습니다.
ALTER TABLE database.table
ADD COLUMN columnname INT DEFAULT(1);
ALTER TABLE database.table add FOREIGN KEY (fk_name) REFERENCES reftable(refcolumn) ON DELETE CASCADE;