私は3つのテーブルを持っています:
モジュール:
id_module | name
--------------------
1 users
2 roles
...
プロフィール:
id_profile | name
--------------------
1 admin
2 promoter
そして許可
id | id_profile | id_module | read | write | modify | delete
---------------------------------------------------------------
私が欲しいのは、新しいモジュールを挿入するたびにテーブルのアクセス許可を埋めるトリガーです...ただし、既存のすべてのプロファイルに対してです。
したがって:
INSERT INTO `module` (`name`) VALUES
('user'),
('roles');
既存のプロファイルの管理者とプロモーターの権限テーブルは、次のように入力されます。
id | id_profile | id_module | read | write | modify | delete
---------------------------------------------------------------
1 1 1 0 0 0 0
2 1 2 0 0 0 0
3 2 1 0 0 0 0
4 2 2 0 0 0 0
このために、次のトリガーを作成しました。
CREATE TRIGGER `create_permission` AFTER INSERT ON `module`
FOR EACH ROW
BEGIN
DECLARE `my_profile` INT(11) ;
SELECT id_profile INTO `my_profile` FROM profile WHERE state <>3;
INSERT INTO `permission` (`id_profile`, `id_module`, `read`, `write`, `modify`, `delete`) VALUES(`my_profile`, NEW.`id_module `,0,0,0,0);
END;
プロファイルがある場合にうまく機能します...「結果が複数の行で構成されている」を返すときに複数の場合
単一の値をサポートする変数を宣言すると、この問題が発生することを読みました... テーブル プロファイルの ID ごとにレコードを挿入できますか?