반응형
다음 SQL 쿼리가 있습니다.
IF EXISTS(SELECT * FROM component_psar WHERE tbl_id = '2' AND row_nr = '1')
UPDATE component_psar
SET col_1 = '1', col_2 = '1', col_3 = '1', col_4 = '1', col_5 = '1',
col_6 = '1', unit = '1', add_info = '1', fsar_lock = '1'
WHERE tbl_id = '2' AND row_nr = '1'
ELSE
INSERT INTO component_psar (tbl_id, row_nr, col_1, col_2, col_3, col_4,
col_5, col_6, unit, add_info, fsar_lock)
VALUES ('2', '1', '1', '1', '1', '1', '1', '1', '1', '1', 'N')
모든 열을 '1'로 설정하려고한다는 사실을 무시하십시오. 예시 데이터 일뿐입니다. :)
어쨌든이 쿼리를 실행하면 구문 오류가 반환됩니다.
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your
MySQL server version for the right syntax to use near 'IF EXISTS(SELECT * FROM
component_psar WHERE tbl_id = '2' AND row_nr = '1') UP' at line 1
나는 그것을 쳐다보고 인터넷을 30 분 동안 검색했지만이 가정 된 구문 오류를 찾을 수 없습니다. 아마 내가 놓친 정말 멍청한 무언가가 될 것입니다.하지만 이것에 대해서는 여러분의 도움을 사용할 수 있습니다.
해결 방법
INSERT INTO component_psar (tbl_id, row_nr, col_1, col_2, col_3, col_4, col_5, col_6, unit, add_info, fsar_lock)
VALUES('2', '1', '1', '1', '1', '1', '1', '1', '1', '1', 'N')
ON DUPLICATE KEY UPDATE col_1 = VALUES(col_1), col_2 = VALUES(col_2), col_3 = VALUES(col_3), col_4 = VALUES(col_4), col_5 = VALUES(col_5), col_6 = VALUES(col_6), unit = VALUES(unit), add_info = VALUES(add_info), fsar_lock = VALUES(fsar_lock)
UNIQUE
키가있는 tbl_id
및 row_nr
과 함께 작동합니다.
이것은 예제와 연결된 DocJonas 메소드입니다.
참조 페이지 https://stackoverflow.com/questions/12639407
반응형
'MySql' 카테고리의 다른 글
MySQL-SELECT 쿼리를 기반으로하는 UPDATE 쿼리 (0) | 2021.01.26 |
---|---|
MySQL phpMyadmin의 최대 실행 시간 (0) | 2021.01.26 |
MySQL 테이블에서 모든 행을 삭제하고 ID를 0으로 재설정 (0) | 2021.01.26 |
MySQL은 오늘과 같은 날짜 선택 (0) | 2021.01.26 |
MySQL, better to insert NULL or empty string? (0) | 2021.01.26 |
댓글