이번 글에서는 제목에 맞지 않지만 자주 사용하는 옵션들도 다뤄볼 계획이다.
1. upsert - 데이터가 존재한다면 update, 존재하지 않는다면 create
const result = await prisma.user.upsert({
where: {
email: 'example@email.com', // 기존 데이터를 찾을 조건
},
update: {
username: 'newUsername', // 기존 데이터의 필드를 업데이트할 값
},
create: {
email: 'example@email.com', // 새로운 데이터를 추가할 값
username: 'newUsername',
},
});
where의 조건으로 데이터를 찾고, 일치하는 데이터가 존재한다면 update를 실행, 존재하지 않는다면 create를 실행한다.
(where과 create, update 는 다음 순서에서 설명)
2. create - 데이터 생성
const newUser = await prisma.user.create({ // user -> 데이터 추가할 테이블명
data: {
username: 'john_doe', // username -> 데이터 주가할 컬럼명
email: 'john@example.com'
},
});
data 안에 데이터를 생성할 컬럼명과 추가할 내용을 작성해주면 된다.
model User {
id Int @id @default(autoincrement())
username String
email String @unique
age Int?
}
주의할점!
위처럼 db 테이블의 구조를 보았을때
id: id값은 자동으로 생성되기 때문에 create를 해주지 않아도 된다.
username: 별 다른 표시가 없으므로 필수로 값이 들어가줘야 한다.
email: 필수로 값을 넣어줘야 하고, @unique가 있기 때문에 테이블 내 다른 email의 값과 중복되어선 안된다.
age: ? 가 있으므로 값을 넣어주지 않아도 된다.
3. where - 찾을 데이터의 조건 정의
const users = await prisma.user.findMany({
where: {
age: {
gte: 18,
},
},
});
age가 18이상인 사용자들을 조회한다.
4. update - 기존 데이터값을 수정
const updatedUser = await prisma.user.update({
where: {
id: 1,
},
data: {
username: 'new_username',
age: 35,
},
});
id가 1인 사용자의 username과 age가 변경된다.
'개발 > PrismaORM' 카테고리의 다른 글
언젠가 사용하게 될 Prisma ORM 옵션 종류 및 설명 (4) (0) | 2023.08.08 |
---|---|
언젠가 사용하게 될 Prisma ORM 옵션 종류 및 설명 (3) (0) | 2023.08.02 |
언젠가 사용하게 될 Prisma ORM 옵션 종류 및 설명 (1) (0) | 2023.07.31 |
Prisma Transaction이란?, $transaction 사용 방법 (0) | 2023.06.01 |
prisma db 연동 명령어 (0) | 2023.04.10 |