2010-12-01 2 views
0

미션 크리티컬 프로젝트가 아닌 MySQL 데이터베이스를 만드는 것을 고려 중입니다. 테이블에 다른 열을 삽입해야하는 경우 기존 열의 데이터 무결성을 손상시키지 않고 이러한 추가 열의 기본값을 지정하지 않고 어떻게 달성 할 수 있을지 생각했습니다. SQL과 Java Persistence API (JPA)에 대한 답변을 원합니다.미래의 SQL 테이블 증명?

또한 부모 테이블의 셀 내에 테이블을 추가하는 방법을 알고 싶습니다.

답변

0

열을 추가하면 다중 열 인덱스, 고유 키 또는 이와 유사한 항목을 만드는 것과 같이 열을 연결하는 작업을 수행하지 않는 한 기존 데이터에 영향을 미치지 않습니다. 그러나 새로운 & 이전 열 사이에 그러한 연결이없는 경우 원하는만큼 열을 추가하십시오. 미치다!

4

그것은 쉽게 :

ALTER TABLE mytable 
ADD COLUMN newcolumn VARCHAR(20) 

당신은 그것을 디폴트 값을 제공 할 수 있습니다, 당신은 단지 끝 부분에 열을 추가하려면 "XYZ"열 후를 추가 할 AFTER xyz 절을 사용 (또는 그것을 생략 할 수 있습니다).

이것에 대해 특별한 것은 없지만 RDBMS를 사용하면 데이터베이스에 열을 즉시 추가 (및 제거) 할 수 있습니다.

+0

그리고 Hibernate/JPA 코드는 어떻습니까? – Catfish

1

앞에서 설명한 것처럼 선택한 RDBMS의 구문을 사용하여 테이블에 열을 추가하기 만하면됩니다.

그 시점에서 코드를 변경하고 싶지 않다면, 적절한 기본값을 제공하는 것만으로도 괜찮습니다 (null도 적절한 기본값이 될 수 있습니다). 그렇게하면 응용 프로그램에서 문제없이 행을 삽입 할 수 있습니다. 나중에 열을 매핑하고 응용 프로그램에서 열을 사용할 수 있습니다.

새로운 버전의 응용 프로그램과 함께 dbschema 업데이트를 릴리스하는 것이 일반적입니다.

1

코드에 영향을 줄 수있는 한 가지는 코드가 키워드 열 대신 위치 열을 참조하는 경우입니다. firstname이 5라는 위치에 있다고 예상 할 경우 firstname 키워드로 참조하는 대신 표의 끝에 새 열을 추가 할 수 있습니다.