[Diesel] 데이터 수정하기 (update)

[원본 링크]

대충 이런 테이블과 데이터가 들어있다고 가정한다.

update는 기본적으로 전역 함수 update와 그로 인해 반환되는 객체의 메서드 set으로 수행할 수 있다.
다음과 같이 테이블값 전체를 넘기고, set으로 특정 컬럼 dsl의 eq값을 넣어준다면 update 쿼리가 생성이 된다.
실행하려면 query의 execute 메서드를 호출하면 된다.

이렇게 말이다.

그럼 다음과 같이 update가 잘 수행될 것이다.

근데 일반적으로 쿼리를 저따위로 짤 일은 별로 없다. 다 조건을 걸어서 특정 값만 바꾸지.



조건절 부여

update에 조건을 달려면, 테이블 값을 그대로 보낼 게 아니라, filter 등을 거친 값을 넣어주면 된다.
수정할 값들을 select 한번 한다고 생각하면 된다.

코드는 이런식이 된다.

그럼 기대한 대로 잘 동작할 것이다.




다중 컬럼 update하기

무슨 조화를 부렸는지는 모르겠는데, set에는 튜플로 여러개의 eq 할당을 넣어줄 수가 있다.

그럼 위와 같이 잘 넣어준다.

따단

혹은, 아예 변경용 구조체를 정의해서 집어넣을 수도 있다. 필요한 트레잇은 AsChangeSet이다.

따단


참조
http://diesel.rs/guides/all-about-updates/