복붙노트

[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. ==============================

    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. ==============================

    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. ==============================

    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. ==============================

    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;
    
  5. 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