2012-01-09 15 views
1

MySQLのトリガーは私にとっては初めてのことです。"NEW"のトリガーは機能しません

私は2つの異なるテーブルを(「ユーザー」と「PROVA」)と私は、「ユーザー」テーブルに新しい行がある「PROVA」たびに新しい行を挿入したいです。

PROVA INTO
INSERT(provaemail)
VALUES(NEW.email)をBEGIN EACH ROW FOR users ON挿入した後
をTRIGGER inserisciemail
を作成します。
END

フィールド 'provaemail' 結果、空のみidフィールドが充填されている(オートインクリメント)。 どうしたの?

ヴィート

+0

うまくいくはずです。あなたはあなたのテーブルスキーマとINSERTステートメントを 'users'テーブル用に共有できますか? 'users'.email'は空ではありませんか? – Abhay

+0

OK、問題は@記号です。別の「シンプルな」フィールドを使うとOKになります。 – Vito

+0

@ symbol?私はそれが問題であるとは思わない。それの問題は何ですか?何か間違いがありますか? – Abhay

答えて

1

SOコメントの拡張の議論を避けるために提案したので、私はここに私たちの議論を移動しています。

だから、SQL文をありがとうございましたが、私は、彼らが「PROVA」については、CREATE TABLEおよび「ユーザー」テーブル上で実行されているINSERT文が含まれていませんでした怖いです。

はとにかく、私は私のdevの環境上の「ユーザー」テーブルおよびトリガーを作成しました。ここでは、「PROVA」を挿入した

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

、新しいエントリ:

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

が続いて以下のINSERT文を実行しました。それから私は以下のように「PROVA」テーブルの私の独自のバージョンを作成し

mysql> select * from prova; 
+----------------------+ 
| provaemail   | 
+----------------------+ 
| [email protected] | 
+----------------------+ 
1 row in set (0.00 sec) 
だからトリガが働いていました!

我々はさらなる研究ができるようにあなたが「PROVA」とごINSERT INTO usersクエリのスキーマを共有することができればそれは素晴らしいことです。私は何かがうんざりだと確信しています。

EDIT 1

インサートをありがとうございました。彼らはうまく走っていて、 "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. トリガーを作成します(私は上記与えたCREATEステートメントを使用して)「PROVA」テーブル
  3. を作成します
  4. 火インサートはSELECT * FROM prova;

を行うと、私はあなたが見るものは何でも知っているようhttp://pastie.org/3166828

  • に与えられましたか?

  • +0

    ありがとうございます。 ここにinsert文http://pastie.org/3166828 – Vito

    +0

    があります。回答の編集1を参照してください – Abhay

    +0

    ありがとう、私もtryed。それは大丈夫です。問題は、SQLAlchemy(+ Plone)によって作成された新しい行... argh! – Vito

    関連する問題