테이블 (이름, 사람, 위치, 볼) 표가 있고 다음 쿼리를 사용하여 해당 테이블에 새 행을 삽입하려고합니다. :삽입 반환 오류 : (하위 선택 6 열을 반환합니다 - 예상 1)
INSERT INTO SIGHTINGS (NAME, PERSON, LOCATION, SIGHTED)
VALUES ('Douglas dustymaiden', 'Person B', 'Double Mountain', '2005-11-28');
그러나이 오류가 반환 것 : 나는 sqlite가 삽입 here에 대한 올바른 구문을 검토 한
[2017-12-04 17:08:18] [1] [SQLITE_ERROR] SQL error or missing database (sub-select returns 6 columns - expected 1)
을, 내가 무엇을 말할 수에서, 삽입 올바르게 기록됩니다. 왜 누군가가 삽입을하는 대신이 오류를 던지고 있는지 말해 줄 수 있습니까? 모든 문제점을 파악하는 데 도움이된다면 DataGrip 2017을 사용하고 있습니다.
편집 :
여기에 데이터베이스에 추가 트리거를합니다. 삽입물은 방아쇠없이 작동합니다.
CREATE TRIGGER SightingLocationError
BEFORE INSERT ON SIGHTINGS
FOR EACH ROW
WHEN NEW.LOCATION NOT IN FEATURES
BEGIN
SELECT RAISE(ABORT, 'Error: Insert into the SIGHTINGS table references location that is not found in the database.');
END;
우리는 당신을 도울 수
는이에 사용할 열을 반환하도록 명시 적으로 하위 쿼리를 사용합니다. –@ CL. 방아쇠가 오류를 일으키는 지 알지 못했습니다. 방아쇠없이 데이터베이스 복사본에서 테스트했지만 여전히 동일한 오류가 발생했습니다. 위의 방아쇠를 게시합니다. –
@CL. 죄송합니다, 내가 그것을 테스트 할 때 잘못된 데이터베이스를 복사했습니다. 인서트는 트리거가없는 상태에서 작동합니다. –