0

私は本当にmysqlの初心者です。オラクルでは、トリガーを使用できます。これにより、挿入要素を検出でき、何か問題がある場合に挿入コマンドを完全に中断できます。mysql もトリガーをサポートしていることがわかりましたが、挿入パラメーターを検出し、ルールを満たさない場合に挿入を停止するためにトリガーを使用するにはどうすればよいでしょうか。

e.g. INSERT INTO accounts (userId, balance) VALUES ('12','450'); // Valid
     INSERT INTO accounts (userId, balance) VALUES ('12','-574'); // Invalid

if(balance<0){
  Do not insert;
}
else{
   Insert;
}

:私は同時トランザクションを扱っているので、誰もハッキングできないように、トリガー、つまり最低レベルのエラー検出が厳密に必要です。どんな助けでも大歓迎です。ありがとう、

4

2 に答える 2

2

または、BEFOREINSERTトリガーを使用します

DELIMITER $$

CREATE TRIGGER au_a_each BEFORE INSERT ON accounts FOR EACH ROW
BEGIN
IF new.balance > 0 THEN
  BEGIN
    INSERT INTO b (id,balance) VALUES (new.id, new.balance);
  END 
END $$
DELIMITER ;

mysqlドキュメントの詳細:http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html

PS:プログラミングレッスン番号1(大文字の「o」が付いたもの)-プログラミング/スクリプト言語のドキュメントを友だちにする

于 2012-10-16T18:15:36.780 に答える
1

INSERT IGNOREを使用して、mysqlでALTERTABLEフィールドの制約を設定できます。

于 2012-10-16T18:08:34.373 に答える