db = 'full_privileges_db'; parent::init(); } public function safeUp() { $drop_trigger = 'Drop trigger if exists w_details_crosses'; $before_insert_trigger = <<< MySQL CREATE DEFINER=`root`@`localhost` TRIGGER `w_details_crosses_before_insert` BEFORE INSERT ON `w_details_crosses` FOR EACH ROW BEGIN DECLARE vBrand varchar(150); SET vBrand = ''; 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_brand INTO vBrand from w_brands_replace where from_brand = NEW.CROSS_BRAND; IF vBrand = '' or vBrand = NULL then insert ignore into w_brands (BRAND) values(NEW.CROSS_BRAND); else SET NEW.CROSS_BRAND = vBrand; end if; insert ignore into `w_details_description`(`name`, `brand`) values (NEW.`ARTICLE`,NEW.`BRAND`),(NEW.`CROSS_ARTICLE`,NEW.`CROSS_BRAND`); END MySQL; $this->execute($drop_trigger); $this->execute($before_insert_trigger); } public function safedown() { // вернем все как было $drop_trigger = 'Drop trigger if exists w_details_crosses_before_insert'; $before_insert_trigger = <<< MySQL CREATE DEFINER=`italautocomua`@`localhost` TRIGGER `w_details_crosses` BEFORE INSERT ON `w_details_crosses` FOR EACH ROW BEGIN insert ignore into `w_details_description`(`name`, `brand`) values (NEW.`ARTICLE`,NEW.`BRAND`),(NEW.`CROSS_ARTICLE`,NEW.`CROSS_BRAND`); END MySQL; $this->execute($drop_trigger); $this->execute($before_insert_trigger); } }