2014-12-31 5 views
1
CREATE DEFINER=`root`@`%` TRIGGER `trg_add_role_type_to_auth_item` AFTER INSERT ON role_type 
FOR EACH ROW 
BEGIN 

INSERT INTO `auth_item` (`name`, `type`, `description`, `bizrule`, `data`) 
SELECT role_type.name, "2", role_type.name, "NULL", "NULL" FROM role_type WHERE role_type.role_type_id = 
(SELECT AUTO_INCREMENT 
        FROM information_schema.TABLES 
        WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='role_type'); 

END; 

, что является неправильным в этом спускового запросе ....
мой ряд был вставлен в role_type, но не создают в Серт в auth_item таблице .. это правильный путь .... Я хочу для вставки значения из последней строки в таблицу auth_item при вставке в таблицу role_typeТриггер MySQL не работает

ответ

1

В триггере вы можете напрямую обращаться к полям основной таблицы с использованием новых или старых объектов.

Попробуйте это:

CREATE DEFINER=`root`@`%` TRIGGER `trg_add_role_type_to_auth_item` AFTER INSERT ON role_type 
FOR EACH ROW 
BEGIN 

INSERT INTO `auth_item` (`name`, `type`, `description`, `bizrule`, `data`) 
VALUES (new.name, "2", new.name, NULL, NULL); 
END; 
+1

спасибо ... узнал нечто новое –

+0

меня к от Ахмадабада ... :) –

Смежные вопросы