[SQL] 선택하고 하나의 검색어로 데이터베이스 레코드를 업데이트
SQL선택하고 하나의 검색어로 데이터베이스 레코드를 업데이트
어떻게 업데이트를 실행하고 오히려 두 개의 쿼리를 수행하는 것보다 같은 검색어 세트에 문을 선택합니까 : - 하나의 개체를 선택합니다 - 그리고 개체를 업데이트하는 한
SQL에서 이에 해당하는 같은 것입니다 :
update my_table set field_1 = 'some value' where pk_field = some_value
해결법
-
==============================
1.의 검색어 개체 업데이트 방법을 사용합니다 :
의 검색어 개체 업데이트 방법을 사용합니다 :
MyModel.objects.filter(pk=some_value).update(field1='some value')
-
==============================
2.장고 데이터베이스 객체 생성 및 오브젝트를 변경 () 저장 방법 같은를 사용합니다.
장고 데이터베이스 객체 생성 및 오브젝트를 변경 () 저장 방법 같은를 사용합니다.
obj = Product.objects.get(pk=pk) obj.name = "some_new_value" obj.save()
참고 : https://docs.djangoproject.com/en/1.9/ref/models/instances/
-
==============================
3.이 답변은 위의 두 가지 방법을 비교합니다. 당신이 한 줄에 많은 개체를 업데이트하려는 경우에 대한 이동 :
이 답변은 위의 두 가지 방법을 비교합니다. 당신이 한 줄에 많은 개체를 업데이트하려는 경우에 대한 이동 :
# Approach 1 MyModel.objects.filter(field1='Computer').update(field2='cool')
그렇지 않으면 쿼리 세트를 반복해야하고 개별 개체를 업데이트 할 것입니다 :
#Approach 2 objects = MyModel.objects.filter(field1='Computer') for obj in objects: obj.field2 = 'cool' obj.save()
-
==============================
4.단지 시리얼 물건의 경우에, 당신은 매우 간단한 방법으로 업데이트 할 수 있습니다!
단지 시리얼 물건의 경우에, 당신은 매우 간단한 방법으로 업데이트 할 수 있습니다!
my_model_serializer = MyModelSerializer( instance=my_model, data=validated_data) if my_model_serializer.is_valid(): my_model_serializer.save()
유일한 형태의 물건의 경우에!
instance = get_object_or_404(MyModel, id=id) form = MyForm(request.POST or None, instance=instance) if form.is_valid(): form.save()
from https://stackoverflow.com/questions/2712682/select-and-update-database-record-with-a-single-queryset by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 어떻게 SQL을 통해 PostgreSQL 데이터베이스에 연결된 활성 사용자를받을 수 있나요? (0) | 2020.07.20 |
---|---|
[SQL] 어떻게 / 죽일 즉시 긴 SQL 쿼리를 중지? (0) | 2020.07.20 |
[SQL] TSQL : 마지막 쿼리의 란을 받기 (0) | 2020.07.20 |
[SQL] 그것은 SQL 서버에 임시 테이블을 만들기위한 #을 사용할 필요가 있습니까? (0) | 2020.07.20 |
[SQL] 어떻게 SQL 문자열의 첫 번째 문자를 얻으려면? (0) | 2020.07.20 |