2016-06-29 18 views
-4

MySQLクエリでは、$$は何を表していますか?

DELIMITER $$ 
CREATE TRIGGER before_population_update 
BEFORE UPDATE ON City 
FOR EACH ROW BEGIN 
INSERT INTO City_Changes 
SET ACTION = ‘update’, 
CityID = OLD.ID, 
Population = OLD.Population, 
User = USER(), 
ChangedOn = NOW(); 
END $$ 
DELIMITER ; 
+0

mysqlのデフォルトの区切り文字はです。上のトリガー定義$$ –

+0

にある他の区切り文字を定義することは、最初の行で区切り文字として定義しています。それはどういう意味だと思いますか?特別な意味はありません。 – TZHX

+0

これは、すべてのテキストを$$まで貼り付けてシングルブロックで実行するのに役立ちます –

答えて

2

トリガーとストアド・プロシージャ[潜在各;によって終端されているいくつかの文から構成されています。 ;は個々のステートメントを終了させるために使用されるので、プロシージャ/トリガーが完了したことを示す方法が必要です。これがdelimiterコマンドの機能です。

最初の行では、$$シーケンスで次のトリガーを区切り(終了)します。次に、引き続きトリガーを宣言します(定義したとおり、create triggerから始まり、$$で終わります)。最後の行で、delimiterをデフォルトの;にリセットしてください。

関連する問題