>  기사  >  데이터 베이스  >  MySQL 데이터 테이블에 대한 트리거를 생성할 때 phpMyadmin에서 발생하는 문제를 해결합니다.

MySQL 데이터 테이블에 대한 트리거를 생성할 때 phpMyadmin에서 발생하는 문제를 해결합니다.

藏色散人
藏色散人앞으로
2021-05-22 16:54:433464검색

다음 튜토리얼 칼럼인 phpmyadmin에서는 phpMyadmin을 사용하여 MySQL 데이터 테이블용 트리거를 생성할 때 발생하는 문제를 소개합니다. 도움이 필요한 친구들에게 도움이 되기를 바랍니다.

MySQL 데이터 테이블에 대한 트리거를 생성할 때 phpMyadmin에서 발생하는 문제를 해결합니다.

오늘 저는 MySQL 데이터베이스에 테이블에 대한 트리거를 만들었습니다. 원하는 효과는 다음과 같습니다. 테이블 a의 수신 필드를 수정한 후 동시에 테이블 b의 RegisterStatus가 1로 업데이트됩니다. RegisterIP가 수신 값으로 변경됩니다.

1 먼저 트리거를 생성하는 sql 문을 작성하세요:

1) 삽입 시:

CREATE TRIGGER insertref BEFORE INSERT ON a
 FOR EACH ROW BEGIN 
UPDATE b SET registerStatus =1 WHERE NEW.id = id and NEW.received is not null and NEW.received !='';
update b set registerIP=NEW.received where NEW.id = id;
end

2) 삭제 시:

CREATE TRIGGER deleteref BEFORE DELETE ON a
 FOR EACH ROW begin
update b set registerStatus =0 WHERE OLD.id = id;
update  b set registerIP=NULL where OLD.id = id;
end

3) 업데이트 시:

CREATE TRIGGER updateref  BEFORE UPDATE ON a
 FOR EACH ROW BEGIN 
update b set registerIP=NEW.received where OLD.id=id;
end

질문 1:

작성 후 실행하세요. 명령문을 실행하면 오류가 보고되어 실행할 수 없습니다. phpMyAdmin을 사용하여 트리거를 생성할 때 SQL 명령문 페이지 하단의 구분 기호에

를 입력하고 //를 입력해야 하기 때문입니다.

질문 2: 트리거를 설정한 후 테스트를 할 때 테이블 a에 데이터를 삽입할 수 없고 오류가 보고됩니다.

1558 - Column count of mysql.proc is wrong. Expected 20, found 16. Created with MySQL 50018, now running 50146. Please use mysql_upgrade to fix this error.

인터넷에 데이터베이스가 손상되었기 때문이라는 게시물이 많이 있습니다. 이전에 업그레이드되었지만 데이터 구조가 업그레이드되지 않았습니다.

해결책: sudo mysql_upgrade -u root -p를 실행하여 비밀번호를 입력한 후 데이터베이스를 다시 시작하세요. 그런 다음 데이터를 삽입할 수 있습니다.

위 내용은 MySQL 데이터 테이블에 대한 트리거를 생성할 때 phpMyadmin에서 발생하는 문제를 해결합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제