INSERT
행에 대한 데이터 삽입은 INSERT 문을 사용하여 수행됩니다.
insert_statement ::= INSERT INTO table_name ( names_values | json_clause ) [ IF NOT EXISTS ] [ USING update_parameter ( AND update_parameter )* ] names_values ::= names VALUES tuple_literal json_clause ::= JSON string [ DEFAULT ( NULL | UNSET ) ] names ::= '(' column_name ( ',' column_name )* ')'
예를 들어 :
INSERT INTO NerdMovies (movie, director, main_actor, year) VALUES ('Serenity', 'Joss Whedon', 'Nathan Fillion', 2005) USING TTL 86400; INSERT INTO NerdMovies JSON '{"movie": "Serenity", "director": "Joss Whedon", "year": 2005}';
INSERT 문은 테이블의 주어진 열에 대해 하나 이상의 칼럼을 씁니다.
유의해야할 점은 열은 PRIMARY KEY로 식별되므로 요청되는 칼럼은 해당 PRIMARY KEY에 해당하는 값을 포함하고 있어야 합니다.
VALUES 구문을 사용할 때 해당 VALUE에 해당하는 칼럼 값은 반드시 제공되어야합니다.
하지만, JSON 구문을 사용할 때는 선택적으로 입력할 수 있습니다.
SQL과 달리 INSERT는 기본적으로 해당 열의 값의 존재 여부를 확인하지 않습니다:
전에 존재하지 않으면 행이 작성되고, 그렇지 않으면 갱신됩니다.
또한 생성 또는 업데이트 중 어떤 것이 발생했는지 알 수있는 방법이 없습니다.
그러나 IF NOT EXISTS 조건을 사용하면 이전에 해당 값이 존재하지 않는 경우에만 삽입 할 수 있습니다.
하지만 IF NOT EXISTS를 사용하면 무시할 수없는 성능 비용 (내부적으로는 Paxos가 사용됨)이 발생하므로주의해서 사용해야합니다.
INSERT의 모든 업데이트는 개별적으로 그리고 독립적으로 적용됩니다.
또한 카운터는 UPDATE는 지원하는 반면, INSERT는 지원하지 않습니다.
출처 : http://cassandra.apache.org/doc/latest/cql/dml.html
댓글 없음 :
댓글 쓰기