0

Mysqlを使用していて、特定のレコードが削除または更新されないようにするトリガーをテーブルに作成しようとしています。たとえば、テーブルがあります。demo

id    username    password
1     dames       t312llok
2     sauce       12ff1fff1
3     hynes       5656166oo9

記録を防ぎたい:

id    username    password
1     dames       t312llok

トリガーを使用して削除または更新されないようにする

4

1 に答える 1

0

MySQL 5.5以降を使用している場合、これは簡単です。

DELIMITER $$
DROP TRIGGER IF EXISTS demo_bd $$
CREATE TRIGGER demo_bd BEFORE DELETE ON demo FOR EACH ROW
BEGIN
  IF OLD.id = 1 THEN
    SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'This magical user cannot be deleted';
  END IF;
END $$
DELIMITER ;

アップデートの場合、コードはまったく同じですが、微調整が加えられています。

DELIMITER $$
DROP TRIGGER IF EXISTS demo_bu $$
CREATE TRIGGER demo_bu BEFORE UPDATE ON demo FOR EACH ROW
BEGIN
  IF OLD.id = 1 THEN
    SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'This magical user cannot be updated';
  END IF;
END $$
DELIMITER ;

また...データベースにパスワードを保存しないでください。

于 2016-05-03T15:07:44.513 に答える