본문 바로가기
학부 전공/DB

DB SQL INSERT 오류 해결하는 과정

by 장어진 2021. 6. 19.

데이터베이스에 삽입하는 문법은 다음과 같이 사용할 수 있습니다.

Syntax :  INSERT INTO R VALUES (v1, …, vn);

 

StarsIn(movieTitle, movieYear, starName)

Movie(title, year, length, genre, studioName, producerCNo)

 

위와 같이 두 가지 테이블이 존재할 때 다음과 같이 사용할 수 있습니다.

Ex) INSERT INTO StarsIn VALUES ('The Maltese Falcon', 1942, 'Sydney Greenstreet');

그랬더니 다음과 같이 오류가 터져나왔습니다.

SQL Error [23503]: 오류 ‘starsin’ 테이블에서 자료 추가, 갱신작업이 ‘~’참조키 제약 조건을 위배했습니다. Detail: (movietitle, movieyear) = (The Maltese Falcon, 1942)키가 “movie” 테이블에 없습니다.

Movie 테이블에 없다고 해서 다음과 같이 일단 추가를 해봤습니다.

잘 추가가 된 것을 확인할 수 있었고 이제 위 명령을 다시 실행해보았습니다.

그래도 여전히 오류가 발생했고 이번에는 moviestar에 이름이 없다고 나왔습니다. 분명 insert로 삽입을 하는 것인데 왜 starsin에 삽입이 계속 안 될까 의심이 들어 엔티티 관계도를 살펴보았습니다.

 

위와 같이 starsinmovie는 상속 관계가 아닌 집합이었고

starname또한 moviestar에 포함되는 전체 부분관계로 starsin을 수정할 수는 없었던 것 같습니다. 따라서 movie 테이블에 따로 추가하고, moviestar 테이블에 값을 따로 추가하는 형태로 진행하고 확인을 해야하는 것 같습니다. (starsin의 세가지 값 모두 각 다른 테이블의 key로 존재하기 때문에 참조키 제약 위반해서 오류가 나왔던 것으로 추측됩니다.)

728x90

'학부 전공 > DB' 카테고리의 다른 글

Databas Modifications - Updates(SQL)  (0) 2021.06.19
SQL INSERT  (0) 2021.06.19
SQL Grouping & Having  (0) 2021.06.19
Join Eexpression in SQL2  (0) 2021.06.19
subquery  (0) 2021.06.19