열 업데이트시 MySQL에서 이전 값을 유지하는 방법은 무엇입니까?

멀린

때때로 상태 값이 설정되고 가끔 그렇지 않은 python 3.x에서 MySQL 5.7.32 테이블을 업데이트하고 있습니다.

항목이없는 경우 오류가 발생하지 않도록 None으로 설정합니다.

    if not 'status'             in item: item['status'] = None

이제 이것은 데이터 세트 tu NULL의 값을 설정하는 것처럼 보이므로 이전 값을 지울 수 있습니다.

    ...
    ON DUPLICATE KEY UPDATE
                    `STATUS` = %s
                """, (
                    item['status'],         

(긴 복잡한 쿼리)를 유지하면서 값을 다른 것으로 설정하여 업데이트되지 않도록하려면 어떻게해야합니까?

최소한의 예 :

    if not 'status'             in item: item['status'] = `STATUS`

    self.curr.execute(""" 
        INSERT INTO product_catalog (
            `ARTICLE_ID`, 
            `STATUS`
        ) 
        VALUES (%s, %s)
        ON DUPLICATE KEY UPDATE
            `STATUS` = %s
        """, (
            item['ARTICLE_ID'],                       
            item['status'],                       
            item['status']                       
        )
    )
태양 플레어

업데이트 부분에서 표현식을 사용하여 값이인지 확인할 수 null있습니다 COALESCE(). 예를 들면 다음과 같습니다.

... ON DUPLICATE KEY UPDATE `STATUS` = COALESCE(%s, `STATUS`)
""", (..., item['status'])

COALESCE()그렇지 않은 %s경우 첫 번째 매개 변수 (값 )를 반환하고 null그렇지 않으면 두 번째 매개 변수 (이 경우 찾고있는 동작 인 현재 열 값)를 반환합니다.

삽입하려는 새 값을 참조하는 VALUE(columnname)for 구문을 사용하여 명령문을 더 단순화 할 수 있으므로 ON DUPLICATE KEY UPDATE매개 변수를 반복 할 필요가 없습니다.

  INSERT INTO product_catalog (`ARTICLE_ID`, `STATUS`)
  VALUES (%s, %s)
  ON DUPLICATE KEY UPDATE 
    `STATUS` = COALESCE(VALUE(`STATUS`), `STATUS`)
""", (item['ARTICLE_ID'], item['status'])

MySQL 8.0.20부터이 구문은 더 이상 사용되지 않지만 (현재는 여전히 작동 함) 별칭을 사용하여 대체됩니다.

  INSERT INTO product_catalog (`ARTICLE_ID`, `STATUS`)
  VALUES (%s, %s) AS new
  ON DUPLICATE KEY UPDATE
    `STATUS` = COALESCE(new.`STATUS`, product_catalog.`STATUS`)
""", (item['ARTICLE_ID'], item['status'])

이 별칭 (여기에 정의 new당신이 당신에 재사용 할 수 삽입 된 행에 대해) update와 유사한 부분을 value().

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

양식이 열리기 전에 임시 테이블을 업데이트하는 방법은 무엇입니까?

분류에서Dev

전체 데이터베이스에서 열을 업데이트하는 방법은 무엇입니까?

분류에서Dev

Rails에서 json 열을 업데이트하는 방법은 무엇입니까?

분류에서Dev

Rails에서 json 열을 업데이트하는 방법은 무엇입니까?

분류에서Dev

Pandas에서 DataFrame 열을 업데이트하는 방법은 무엇입니까?

분류에서Dev

SQL에서 두 변수의 차이로 열 값을 업데이트하는 방법은 무엇입니까?

분류에서Dev

phpmyadmin 및 MySQL에서 삽입 및 업데이트 열을 생성하는 방법은 무엇입니까?

분류에서Dev

모달에서 행의 각 열에 대한 값을 업데이트하는 방법은 무엇입니까?

분류에서Dev

JSON 배열로 MySQL을 업데이트하는 방법은 무엇입니까?

분류에서Dev

Pydatatable의 조건에서 열 값을 수정 / 업데이트하는 방법은 무엇입니까?

분류에서Dev

델타에서 분할 된 열의 값을 업데이트하는 방법은 무엇입니까?

분류에서Dev

Postgres에서 두 배열의 값으로 여러 행을 업데이트하는 방법은 무엇입니까?

분류에서Dev

MongoDb에서 배열 값을 업데이트하는 방법은 무엇입니까?

분류에서Dev

다른 열에서 동일한 값을 업데이트하는 방법은 무엇입니까?

분류에서Dev

다른 테이블의 다른 값으로 mysql 열을 업데이트하는 방법은 무엇입니까?

분류에서Dev

'지시문'에서 '컨트롤러'의 값을 업데이트하는 방법은 무엇입니까?

분류에서Dev

'지시문'에서 '컨트롤러'의 값을 업데이트하는 방법은 무엇입니까?

분류에서Dev

MYSQL / PHP / Javascript에서 NULL 값이있는 열을 표시하지 않는 방법은 무엇입니까?

분류에서Dev

이 배열에서 반복되지 않는 유일한 값을 반환하는 방법은 무엇입니까?

분류에서Dev

동일한 열의 다른 값으로 MySQL 행을 업데이트하는 방법은 무엇입니까?

분류에서Dev

SQL 쿼리에서 날짜와 날짜 배열을 비교하고 MySQL에서 필드 값을 업데이트하는 방법은 무엇입니까?

분류에서Dev

배열 값을 업데이트하는 방법은 무엇입니까?

분류에서Dev

열 값을 업데이트하고 나누는 방법은 무엇입니까?

분류에서Dev

Javascript에서 이전 값을 그대로 유지하면서 배열에 값을 추가하는 방법은 무엇입니까?

분류에서Dev

Java Spring을 사용하여 mysql 업데이트 쿼리에서 동적 열 이름을 하나씩 전달하는 방법은 무엇입니까?

분류에서Dev

다른 방법에서 업데이트 된 UITableViewCell 값을 표시하는 방법은 무엇입니까?

분류에서Dev

Java에서 시간을 업데이트하는 방법은 무엇입니까?

분류에서Dev

단일 업데이트 쿼리에 대해 다른 열의 값을 기반으로 한 열의 값을 업데이트하는 방법은 무엇입니까?

분류에서Dev

업데이트 문에 배열을 전달하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    양식이 열리기 전에 임시 테이블을 업데이트하는 방법은 무엇입니까?

  2. 2

    전체 데이터베이스에서 열을 업데이트하는 방법은 무엇입니까?

  3. 3

    Rails에서 json 열을 업데이트하는 방법은 무엇입니까?

  4. 4

    Rails에서 json 열을 업데이트하는 방법은 무엇입니까?

  5. 5

    Pandas에서 DataFrame 열을 업데이트하는 방법은 무엇입니까?

  6. 6

    SQL에서 두 변수의 차이로 열 값을 업데이트하는 방법은 무엇입니까?

  7. 7

    phpmyadmin 및 MySQL에서 삽입 및 업데이트 열을 생성하는 방법은 무엇입니까?

  8. 8

    모달에서 행의 각 열에 대한 값을 업데이트하는 방법은 무엇입니까?

  9. 9

    JSON 배열로 MySQL을 업데이트하는 방법은 무엇입니까?

  10. 10

    Pydatatable의 조건에서 열 값을 수정 / 업데이트하는 방법은 무엇입니까?

  11. 11

    델타에서 분할 된 열의 값을 업데이트하는 방법은 무엇입니까?

  12. 12

    Postgres에서 두 배열의 값으로 여러 행을 업데이트하는 방법은 무엇입니까?

  13. 13

    MongoDb에서 배열 값을 업데이트하는 방법은 무엇입니까?

  14. 14

    다른 열에서 동일한 값을 업데이트하는 방법은 무엇입니까?

  15. 15

    다른 테이블의 다른 값으로 mysql 열을 업데이트하는 방법은 무엇입니까?

  16. 16

    '지시문'에서 '컨트롤러'의 값을 업데이트하는 방법은 무엇입니까?

  17. 17

    '지시문'에서 '컨트롤러'의 값을 업데이트하는 방법은 무엇입니까?

  18. 18

    MYSQL / PHP / Javascript에서 NULL 값이있는 열을 표시하지 않는 방법은 무엇입니까?

  19. 19

    이 배열에서 반복되지 않는 유일한 값을 반환하는 방법은 무엇입니까?

  20. 20

    동일한 열의 다른 값으로 MySQL 행을 업데이트하는 방법은 무엇입니까?

  21. 21

    SQL 쿼리에서 날짜와 날짜 배열을 비교하고 MySQL에서 필드 값을 업데이트하는 방법은 무엇입니까?

  22. 22

    배열 값을 업데이트하는 방법은 무엇입니까?

  23. 23

    열 값을 업데이트하고 나누는 방법은 무엇입니까?

  24. 24

    Javascript에서 이전 값을 그대로 유지하면서 배열에 값을 추가하는 방법은 무엇입니까?

  25. 25

    Java Spring을 사용하여 mysql 업데이트 쿼리에서 동적 열 이름을 하나씩 전달하는 방법은 무엇입니까?

  26. 26

    다른 방법에서 업데이트 된 UITableViewCell 값을 표시하는 방법은 무엇입니까?

  27. 27

    Java에서 시간을 업데이트하는 방법은 무엇입니까?

  28. 28

    단일 업데이트 쿼리에 대해 다른 열의 값을 기반으로 한 열의 값을 업데이트하는 방법은 무엇입니까?

  29. 29

    업데이트 문에 배열을 전달하는 방법은 무엇입니까?

뜨겁다태그

보관