0
超過一排的我有3個表:mysql的觸發器:結果由
模塊:
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插入記錄?
嗨,這是非常有趣和簡單的你的解決方案。但是可以在插入之前創建一條if語句? 我只想知道如果id_profile是'1'被插入權限1,1,1,1 ...並且如果id_profile是另一個數字,則插入0,0,0,0。 這是可能在一個單一的句子或它可以用光標解決? – csotelo