programing

그렇지 않으면 mysql에 INSERT 업데이트

closeapi 2023. 7. 30. 17:50
반응형

그렇지 않으면 mysql에 INSERT 업데이트

이 코드를 테스트했습니다.

UPDATE books SET price='20000' WHERE user_id='2'
IF ROW_COUNT()=0
INSERT INTO store_books(name,user_id) VALUES ('test1','2')

다음 오류가 발생했습니다.

오류: SQL 구문에 오류가 있습니다. 줄 2의 'IF ROW_COUNT()=0 INSERT INSTARE_books(이름,user_id) VALUEs('test1','2') 근처에서 사용할 올바른 구문은 MariaDB 서버 버전에 해당하는 설명서에서 확인하십시오.

이 문제를 해결할 방법이 있습니까?

INSERT INTO를 사용하고 싶지 않습니다...중복 키 업데이트 시(메인 테이블에 여러 개의 키가 있기 때문).

위의 예는 새로운 방법을 찾기 위한 시도입니다.

내가 원하는 패턴:업데이트(존재하는 경우) ELSE 삽입.

두 가지:

  1. INSERT ... ON DUPLICATE KEY UPDATE ...당신이 하고 싶은 일을 하는 가장 좋은 방법입니다.이렇게 하지 않으면 데이터베이스 트랜잭션을 사용하여 원하는 작업의 무결성을 유지해야 합니다.
  2. MySQL(예: MS SQL 서버와 달리)은 저장 프로시저를 제외하고는 조건부 쿼리 실행을 허용하지 않습니다.이걸 읽어보세요.SQL Script for Mysql에서 조건부인 경우

언급URL : https://stackoverflow.com/questions/52333997/update-else-insert-in-mysql

반응형