2016-04-23 60 views
0

所以我有一個問題。我不知道如何寫一個觸發器,它不僅將datafrom(表1)到另一個表(表2),但編輯它,以及看到圖像鏈接 - 在這個問題將數據複製到另一個格式化表的自動觸發器MySQL

use ptype; 
create table IDVU (
`ID` int(8) unsigned not null auto_increment , 
`VU` varchar(45) not null, 
PRIMARY KEY (`id`), 
KEY `ix_VU` (`VU`) 
)ENGINE = InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; 

create table sep (
ID1 int(8) unsigned NOT NULL primary key auto_increment, 
ID2 int(8) unsigned not null, 
V varchar(45) not null, 
U varchar(45) not null, 
KEY `ix_ID2` (`ID2`), 
CONSTRAINT `ID_IDVU_SEP` FOREIGN KEY (`ID2`) REFERENCES `IDVU` (`ID`) ON 
DELETE CASCADE ON UPDATE CASCADE 
)ENGINE = InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; 

delimiter $$ 
CREATE TRIGGER `edit` AFTER INSERT 
ON `idvu` 
FOR EACH ROW BEGIN 

    IF new.VU like '% %' THEN 
     SET @V = SUBSTRING_INDEX(SUBSTRING_INDEX(new.Vu, ' ', 1), ' ', -1) , 
      @U = SUBSTRING_INDEX(SUBSTRING_INDEX(new.Vu, ' ', 2), ' ', -1); 
    else 
     SET @V = 'NEW',@U = 'NEW'; 
    END IF; 

    INSERT INTO sep (ID2,V, U) VALUES (new.ID,@V, @U); 

END$$ 

delimiter ; 

LOAD DATA LOCAL INFILE '/Users/MarcisL/Desktop/MySQL faili/CSV/PTCSV.csv' ignore 
INTO TABLE IDVU FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';  
月底全面轉型

這是我想用作基礎的代碼,因爲觸發器在我看來與我現在想要的非常相似。如果table2(IDVU)被更新並且table3(sep)被更新並且來自table2(IDVU)的播放器(VU)列被分割成名稱(V),姓氏(U) - 如果表2(IDVU)被更新,則代碼工作如下 - - 問題

在結束我的整個腳本應該像這樣工作 - Full transformation

+0

請別人幫忙!我試圖讓這個觸發器很長一段時間.........很長時間! –

+0

問題是什麼?這是一個錯誤嗎?或者觸發器沒有按預期工作? –

+0

我不知道如何編寫**如果部分**在觸發器中,所以如果在一個字段中有兩列值(4和8)的表1中的數字列。我如何將這些值分成兩行,如表2所示? –

回答

相關問題