2015年10月19日 星期一

wine windows program loader 介紹


Wine的使用方法

執行Windows程式

安裝完Wine之後,Windows的執行檔應該就自動與Wine(Wine Windows Program Loader)
自動進行關聯了,因此只要直接在檔案瀏覽器開啟副檔名為「EXE」的檔案即可執行Windows程式。
Wine在執行Windows程式時可能會告知缺了什麼套件需要安裝,就讓它安裝吧!

Wine 路徑

在Wine的環境中,也是有「C槽」(C:)這樣的東西,它的實體路徑就在「~/.wine/dosdevices/c:」下,在這個目錄可以找到安裝軟體時通常會放置的「Program Files」目錄,以及系統檔案使用的「Windows」目錄。


Wine 移除程式

使用Wine來安裝Windows程式很簡單,但是安裝完要如何移除呢?只要輸入以下指令,就可以開啟Wine的「新增/移除程式」。

wine uninstaller

2015年10月8日 星期四

Trigger

Mysql 的 Trigger 觸發

trigger_name 觸發名稱
                     隨個人喜好命名

trigger_time 觸發時間 
                     只有 BEFORE 和AFTER兩種
                     BEFORE 是在進行trigger_event 之前
                     AFTER 在進行trigger_event 之後觸發

trigger_event 觸發事件
                     有 INSERT、DELETE、UPDATE 三種


以下有幾個注意點:

    1. INSERT INTO .. ON DUPLICATE UPDATE 
                     這語法造成的觸發行為由最後是 INSERT 或是 UPDATE 來決定
    2. 同一個 trigger_time +trigger_event  組合不得重覆。
    3. INSERT、LOAD DATA和REPLACE 都會觸發 INSERT event
        DELETE和REPLACE 都會觸發 DELETE。


trigger_stmt 是當觸發時要執行的語句。
如果您打算執行多個語句,可使用BEGIN ... END復合語句結構。
以下是範例(直接在Mysql console下指令,不要phpMyAdmin下操作):

DROP PROCEDURE IF EXISTS update_testTable ;

delimiter //
CREATE PROCEDURE update_testTable ( IN id varchar(32)) 
BEGIN 

   DELETE c
   FROM a
   WHERE a.id = id ;

   INSERT INTO a (  id )
                    value ( id ) ;

END //
delimiter ;  
delimiter //

DROP TRIGGER IF EXISTS trigger_INSERT_testTable ;

CREATE TRIGGER trigger_INSERT_testTable
AFTER INSERT ON testTable
FOR EACH ROW  
        BEGIN  
            CALL update_testTable (NEW.id
END //
delimiter ;   
delimiter //

DROP TRIGGER IF EXISTS trigger_UPDATE_testTable ;

CREATE TRIGGER trigger_UPDATE_testTable
AFTER INSERT ON testTable
FOR EACH ROW  
        BEGIN  
            CALL update_testTable (NEW.id
END //
delimiter ;   
delimiter //

DROP TRIGGER IF EXISTS trigger_DELETE_testTable ;

CREATE TRIGGER trigger_DELETE_testTable
AFTER INSERT ON testTable
FOR EACH ROW  
        BEGIN  
            CALL update_testTable (OLD.id
END //
delimiter ; 
delimiter //



查看trigger 內容
mysql> show triggers;


刪除trigger 
mysql> drop TRIGGER trigger_name;