2012-01-09 4 views
1

MySQL에서 트리거를 사용하는 것은 처음입니다."NEW"로 트리거가 작동하지 않습니다.

두 개의 서로 다른 테이블 ('사용자'및 '프로판')이 있는데 '사용자'테이블에 새로운 행이있을 때마다 '프로파'에 새 행을 삽입하려고합니다.

TRIGGER 각 ROW FOR users ON INSERT AFTER inserisciemail
을 만들
는 PROVA (provaemail) INTO
INSERT
VALUES (NEW.email)를 BEGIN;
END

필드 'provaemail'결과 빈 만 id 필드가 작성된다 (autoincremented). 무엇이 잘못 되었나요?

비토

+0

제대로 작동합니다. 'users'테이블에 대한 INSERT 문과 테이블 스키마를 공유 할 수 있습니까? 'users'.email'은 비어 있지 않습니까? – Abhay

+0

좋습니다. 문제는 @ 기호입니다. 다른 "간단한"필드를 사용하면 OK가됩니다 ... 아아! – Vito

+0

@ 기호? 나는 그것이 문제가되어야한다고 생각하지 않는다. 그것의 문제점은 무엇입니까? 오류가 있습니까? – Abhay

답변

1

의견에 대한 논의가 길어지는 것을 피하기 위해 여기에서 논의를 진행합니다.

SQL에 감사하지만 "prova"에 대한 CREATE TABLE과 "users"테이블에서 실행되는 INSERT 문은 포함되지 않았습니다.

어쨌든, 내 dev 환경에서 "사용자"테이블과 트리거를 만들었습니다. 여기에 "PROVA"삽입

INSERT INTO `users` (`id`, `email`) VALUES (1, '[email protected]'); 

그리고 새 항목 :

CREATE TABLE `prova` (
`provaemail` VARCHAR(40) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

그런 다음 아래 삽입 문을 실행 : 그럼 아래와 같이 "PROVA"테이블의 내 자신의 버전을 만들어

mysql> select * from prova; 
+----------------------+ 
| provaemail   | 
+----------------------+ 
| [email protected] | 
+----------------------+ 
1 row in set (0.00 sec) 

그래서 트리거가 작동했습니다!

우리가 더 연구 할 수 있도록 "prova"와 INSERT INTO users 쿼리에 대한 스키마를 공유 할 수 있다면 좋을 것입니다. 나는 뭔가 잘못 될 것이라고 확신한다. 1

편집은 INSERT들 주셔서 감사합니다. 그들은 잘 달렸고 "prova"테이블은 이제 다음과 같은 엔트리를 가지고 있습니다 :

mysql> select * from prova; 
+-----------------------+ 
| provaemail   | 
+-----------------------+ 
| [email protected] | 
| [email protected]  | 
| [email protected]  | 
| [email protected]  | 
| [email protected] | 
| [email protected]  | 
| [email protected]  | 
+-----------------------+ 
8 rows in set (0.00 sec) 

그래서 지금까지 아무것도 이상하지 않습니다! 당신이 당신의 말에 한 번 다음 단계를 시도하지 않는 이유 :

  1. 것은 "사용자"를 만들 테이블
  2. 생성 트리거를 작성 "PROVA"테이블
  3. (내가 위에서 준 CREATE 문을 사용하여)
  4. 화재 삽입물은 SELECT * FROM prova;

을 그리고 내가 당신이 볼 무엇이든 알려 http://pastie.org/3166828

  • 에 주어진?

  • +0

    감사합니다. 여기에 삽입 문 http://pastie.org/3166828 – Vito

    +0

    응답을 편집하십시오 1을 참조하십시오 – Abhay

    +0

    감사합니다, 나는 tryed도. 괜찮아. 문제는 SQLAlchemy (+ Plone)에 의해 생성 된 새로운 행 ... argh! – Vito

    관련 문제