SQL에서 INSERT사용시 INTO 대신 SET을 사용한 이유가 궁금합니다!

SQL에서 INSERT사용시 INTO 대신 SET을 사용한 이유가 궁금합니다!

QA

SQL에서 INSERT사용시 INTO 대신 SET을 사용한 이유가 궁금합니다!

본문

영카트 내에 shop/wishupdate.php 41번 부터 47번까지 내용입니다.


    if (!$row['wi_id']) { // 없다면 등록
        $sql = " insert {$g5['g5_shop_wish_table']}
                    set mb_id = '{$member['mb_id']}',
                        it_id = '$it_id',
                        wi_time = '".G5_TIME_YMDHIS."',
                        wi_ip = '$REMOTE_ADDR' ";
        sql_query($sql);

안녕하세요!

저는SQL 에 관한 지식이 없어서 질문을 올리게 되었습니다!

궁금한 것은 위에 것을 보고 인터넷을 검색 해 보았습니다.

 

그런데 INSERT 명령어에 관한 내용들은 거의 99%가

INSERT INTO 테이블_또는_뷰_이름 values (값1, [값2, ...])  

이런 내용입니다.

하지만 insert set 문도 정확히 작동은 하고 있고요.

 

제가 궁금한 것은 왜 영카트의 위에 해당하는 PHP구문에서는

insert set을 사용하였는가 입니다.


별다른 이유가 있는 건인가요?

 

이 질문에 댓글 쓰기 :

답변 2

into 로 작업하면 필드가 많으면 뭐가 뭔지 헷갈리고 잘못된거 찾는데 번거로움 또는 귀차니즘 또는 어려움 또는 복잡함 또는 찾지못함 등이 있을수 있습니다.

 

그런데 set 으로 하면 필드명에 값을 저장해 놓으니 잘못된거 찾기가 한결 수월해집니다.

아시는 바와 같이, ANSI sql 구문에서 인서트 구문은 아래와 같은 형태 입니다. 

 

INSERT INTO table (a, b, c) VALUES (1,2,3)

 

그런데, sql 의 select, insert, update 구문이 너무나 제각각이라서 일관성이 전혀 없습니다. 

특히, insert 구문의 경우 values 앞뒤로 오는 필드명과 입력값들이 일치해야 오류가 안생깁니다. 

그래서, 인서트 구문을 update 구문과 비슷하게 명시적으로 만든 것이 아래와 같은 구문입니다. ^^

 

INSERT INTO table SET a=1, b=2, c=3

 

참고로, insert ... set ... 구문은 mysql 차원에서 지원되는 구문이라고 합니다. 

답변을 작성하시기 전에 로그인 해주세요.
전체 27
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT