MySQL中的DELIMITER是一個特殊的關鍵字,用于定義語句中自定義的分隔符。一般情況下,MySQL使用“;”作為語句的分隔符。然而,在某些情況下,我們需要在SQL語句中使用自定義的分隔符,這時就需要用到DELIMITER了。
DELIMITER可以定義一個用于分隔SQL語句中的多個語句的字符。例如,如果我們想要在一個SQL語句中定義多個觸發器或存儲過程,那么可能會出現多行SQL語句的情況。此時,我們可以使用DELIMITER來定義自定義的分隔符。
下面是一個使用DELIMITER的示例:
DELIMITER $$ CREATE TRIGGER trg_audit AFTER INSERT ON orders FOR EACH ROW BEGIN INSERT INTO audit (user, action, date) VALUES (USER(), 'INSERT', NOW()); END$$ DELIMITER ;
在上面的代碼中,我們使用DELIMITER來定義自定義的分隔符為“$$”,然后在觸發器的SQL語句中使用了這個分隔符。最后,我們又使用DELIMITER指令將分隔符改回了默認的“;”。
如果不使用DELIMITER,以上的SQL語句將無法執行,因為MySQL會將其中的“;”解釋為語句的分隔符,這將導致語法錯誤。
在MySQL中,DELIMITER只是一個指令,不是SQL語句的一部分,因此如果需要在MySQL客戶端中執行以上代碼,需要使用“mysql -u username -p database< filename.sql”這種方式,將代碼以文件的方式輸入到MySQL中。
下一篇mysql deny