[SQL] 어떻게 열을 추가하고 하나의 MySQL의 문에서 외래 키 만드는 방법?
SQL어떻게 열을 추가하고 하나의 MySQL의 문에서 외래 키 만드는 방법?
mysql을, 나는 같은 문에서 열 및 외래 키를 추가 할 수 있습니까? 그리고 FK를 추가하기위한 올바른 구문은 무엇인가?
여기 내 SQL은 다음과 같습니다
ALTER TABLE database.table
ADD COLUMN columnname INT DEFAULT(1),
FOREIGN KEY (fk_name) REFERENCES reftable(refcolumn) ON DELETE CASCADE;
... 그리고 동반 오류 메시지 :
해결법
-
==============================
1.이 시도:
이 시도:
ALTER TABLE database.table ADD COLUMN columnname INT DEFAULT(1), ADD FOREIGN KEY fk_name(fk_column) REFERENCES reftable(refcolumn) ON DELETE CASCADE;
-
==============================
2.다음 쿼리는 ALTER 쿼리에 의해 열을 추가하고 제약 쿼리는 하나의 MySQL의 쿼리에서 그것을 FK한다. 당신은 이런 식으로 작업을 수행 할 수 있습니다
다음 쿼리는 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`);
-
==============================
3.이것은 조금 단순화 할 수있다. 당신은 "FOREIGN KEY"전에 "ADD"키워드를 추가해야합니다. 아래의 예를 추가.
이것은 조금 단순화 할 수있다. 당신은 "FOREIGN KEY"전에 "ADD"키워드를 추가해야합니다. 아래의 예를 추가.
ALTER TABLE database.table ADD COLUMN columnname INT DEFAULT(1), ADD FOREIGN KEY (fk_name) REFERENCES reftable(refcolumn) ON DELETE CASCADE;
-
==============================
4.당신은 그것을 사용할 수 있습니다.
당신은 그것을 사용할 수 있습니다.
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;
from https://stackoverflow.com/questions/1545253/how-to-add-a-column-and-make-it-a-foreign-key-in-single-mysql-statement by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] SQL 서버 오라클의 NULLS FIRST에 해당? (0) | 2020.07.24 |
---|---|
[SQL] DBCC CHECKIDENT는 0으로 신원을 설정합니다 (0) | 2020.07.24 |
[SQL] 디버그 동안 SSIS 변수를보고 (0) | 2020.07.24 |
[SQL] MySQL은 : 지금 대 CURDATE () () (0) | 2020.07.24 |
[SQL] 하나 개의 필드의 개수가 1보다 클 경우 선택 (0) | 2020.07.23 |