it-source

단일 MySQL 문에서 열을 추가하고 외부 키를 만드는 방법은 무엇입니까?

criticalcode 2023. 1. 23. 10:08
반응형

단일 MySQL 문에서 열을 추가하고 외부 키를 만드는 방법은 무엇입니까?

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행의 'FORECTIVE KEY (fk_name) REFERENCE reftable (refcolumn) ON DELETE CASCADE' 근처에서 사용할 올바른 구문은 MySQL Server 버전에 해당하는 설명서를 참조하십시오.

이것을 시험해 보세요.

ALTER TABLE database.table
  ADD COLUMN columnname INT DEFAULT(1),
  ADD FOREIGN KEY fk_name(fk_column) REFERENCES reftable(refcolumn) ON DELETE CASCADE;

다음 쿼리는 쿼리를 변경하여 열을 추가하고 제약 조건 쿼리는 단일 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`); 

이것은 조금 간단하게 할 수 있습니다.FORENAL 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;

언급URL : https://stackoverflow.com/questions/1545253/how-to-add-a-column-and-make-it-a-foreign-key-in-single-mysql-statement

반응형