데이터베이스에 삽입하는 문법은 다음과 같이 사용할 수 있습니다.
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에 삽입이 계속 안 될까 의심이 들어 엔티티 관계도를 살펴보았습니다.
위와 같이 starsin과 movie는 상속 관계가 아닌 집합이었고
starname또한 moviestar에 포함되는 전체 부분관계로 starsin을 수정할 수는 없었던 것 같습니다. 따라서 movie 테이블에 따로 추가하고, moviestar 테이블에 값을 따로 추가하는 형태로 진행하고 확인을 해야하는 것 같습니다. (starsin의 세가지 값 모두 각 다른 테이블의 key로 존재하기 때문에 참조키 제약 위반해서 오류가 나왔던 것으로 추측됩니다.)
'학부 전공 > 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 |