db = 'full_privileges_db'; parent::init(); } public function safeUp() { $drop_trigger = 'Drop trigger if exists w_details'; $before_insert_trigger = <<< MySQL CREATE DEFINER=`root`@`localhost` TRIGGER `w_details_before_insert` BEFORE INSERT ON `w_details` FOR EACH ROW BEGIN DECLARE vBrand varchar(150); DECLARE vArticle varchar(100); SET vBrand = ''; SET vArticle = ''; SELECT to_brand INTO vBrand from w_brands_replace where from_brand = NEW.BRAND; IF vBrand = '' or vBrand = NULL then insert ignore into w_brands (BRAND) values(NEW.BRAND); else SET NEW.BRAND = vBrand; end if; SET vBrand = ''; SELECT to_name, to_brand INTO vArticle, vBrand from w_details_replace where from_name = NEW.ARTICLE AND from_brand = NEW.BRAND LIMIT 1; IF vArticle != '' then SET NEW.BRAND = vBrand; SET NEW.ARTICLE = vArticle; end if; INSERT INTO `w_details_description`(`name`, `brand`, `supplier_description`, `article`) values (NEW.`ARTICLE`,NEW.`BRAND`,NEW.`DESCR`,NEW.`FULL_ARTICLE`) on duplicate key update `supplier_description` = if (`supplier_description` = '',values(`supplier_description`),`supplier_description`); END MySQL; $this->execute($drop_trigger); $this->execute($before_insert_trigger); } public function safedown() { // вернем все как было $drop_trigger = 'Drop trigger if exists w_details_before_insert'; $before_insert_trigger = <<< MySQL CREATE DEFINER=`italautocomua`@`localhost` TRIGGER `w_details` BEFORE INSERT ON `w_details` FOR EACH ROW BEGIN INSERT INTO `w_details_description`(`name`, `brand`, `supplier_description`, `article`) values (NEW.`ARTICLE`,NEW.`BRAND`,NEW.`DESCR`,NEW.`FULL_ARTICLE`) on duplicate key update `supplier_description` = if (`supplier_description` = '',values(`supplier_description`),`supplier_description`); END MySQL; $this->execute($drop_trigger); $this->execute($before_insert_trigger); } }