>  Q&A  >  본문

MySQL - 삽입 작업 후 동일한 테이블을 업데이트하도록 트리거됩니다.

내가 하려는 일은 다음과 같습니다:

신규가 있을 때 INSERT 到表 ACCOUNTS 中时,我需要通过设置 status='E'phpcnend 来更新 ACCOUNTS 中的行,其中 pk = NEW.edit_on cphpcn 来表示特定(旧)帐户已被编辑。

으아아아

필요 내 작업새로 삽입된 열이 아니라 이미 존재하는 열입니다. 여기서 pk = NEW.edit_onpk = NEW.edit_on

<

无法更新表 ACCOUNTS ... 已被调用此触发器的语句使用그러나 동일한 테이블을 업데이트할 수 없습니다.

ACCOUNTS 테이블을 업데이트할 수 없습니다... 이 트리거를 호출한 명령문에서 이미 사용되었습니다.

해결책을 제안해주세요
추신: 동일한 테이블에서 업데이트 후 트리거에서 테이블 업데이트를 수행하고, 동일한 테이블 트리거 mysql에 삽입하고, 삽입 후 트리거를 사용하여 동일한 테이블에서 업데이트하고, 테이블에 삽입한 후 mysql 트리거를 삽입 및 업데이트했지만 내 질문에 대답하지 않는 것 같습니다. .

편집

ACCOUNTS

ACCOUNTS
테이블:

으아아아
🎜🎜🎜
P粉419164700P粉419164700369일 전657

모든 응답(2)나는 대답할 것이다

  • P粉063862561

    P粉0638625612023-10-17 18:44:15

    이것은 삽입 시 동일한 테이블의 행을 업데이트하는 방법입니다

    activationCodeemail 是表 USER라인. 삽입할 때 activationCode 값을 지정하지 않았으므로 MySQL에서 동적으로 생성됩니다.

    변경 username 更改为您的 MySQL 用户名,并将 db_name을 데이터베이스 이름으로 변경하세요.

    으아악

    회신하다
    0
  • P粉262113569

    P粉2621135692023-10-17 17:55:58

    트리거에서는 이 모든 작업을 수행할 수 없는 것 같습니다. Documentation에 따르면:

    이 답변에 따르면 다음과 같이 해야 할 것 같습니다.

    저장 프로시저를 사용하면 변경 사항(삽입 및 업데이트)을 수동으로 커밋합니다. 아직 MySQL에서는 이 작업을 수행하지 않았지만 이 기사가 좋은 예인 것 같습니다.

    회신하다
    0
  • 취소회신하다