MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

そのトリガーを持つテーブルをドロップすると、トリガーはどうなりますか?


トリガーが関連付けられているテーブルを破棄すると、トリガーも破棄されます。これは、トリガーの明示的な破棄と呼ばれます。例の助けを借りて理解することができます-

「Sample」という名前のテーブルに「trigger_before_delete_sample」という名前のトリガーがあるとします。このテーブルを削除すると、このテーブルに関連付けられている上記のトリガーも削除されます。

 mysql> Show Triggers \ G *************************** 1. row *********** ****************トリガー:trigger_before_delete_sampleイベント:DELETEテーブル:サンプルステートメント:BEGIN SET @count =if(@count IS NULL、1、(@ count + 1)); INSERT INTO sample_rowaffected values(@count); END Timing:BEFORE Created:2017-11-21 12:31:58.70 sql_mode:ONLY_FULL_GROUP_BY、STRICT_TRANS_TABLES、NO_ZERO_IN_DATE、NO_ZERO_DATE、ERROR_FOR_DIVISION_BY_ZERO、NO_AUTO_CREATE_USER、NO_ cp850_general_ciデータベース照合:latin1_swedish_ci***************************2.行*************** ************トリガー:before_inser_studentageイベント:INSERTテーブル:student_ageステートメント:IF NEW.age <0 THEN SET NEW.age =0; END IFタイミング:BEFORE Created:2017-11-21 11 :26:15.34 sql_mode:ONLY_FULL_GROUP_BY、STRICT_TRANS_TABLES、NO_ZERO_IN_DATE、 NO_ZERO_DATE、ERROR_FOR_DIVISION_BY_ZERO、NO_AUTO_CREATE_USER、NO_ENGINE_SUBSTITUTION定義者:root @ localhost character_set_client:cp850 collat​​ion_connection:cp850_general_ciデータベース照合:latin1_swedish_ci2行セット(0.01秒)

上記の結果セットは、データベースに2つのトリガーがあり、その中に「Sample」という名前のテーブルに関連付けられているトリガーがあることを示しています。次のステートメントを使用して、テーブルを削除します-

 mysql>DROPテーブルのサンプル;クエリOK、影響を受ける行は0行(0.26秒)

次のステートメントを使用すると、「Sample」という名前のテーブルに関連付けられていたトリガーも破棄されていることがわかります。

 mysql> Show Triggers \ G *************************** 1. row *********** ****************トリガー:before_inser_studentageイベント:INSERTテーブル:student_ageステートメント:IF NEW.age <0 THEN SET NEW.age =0; END IFタイミング:BEFORE Created:2017- 11-21 11:26:15.34 sql_mode:ONLY_FULL_GROUP_BY、STRICT_TRANS_TABLES、NO_ZERO_IN_DATE、NO_ZERO_DATE、ERROR_FOR_DIVISION_BY_ZERO、NO_AUTO_CREATE_USER、NO_ENGINE_SUBSTITUTIONデータベース 
  1. MySQLを使用してテーブルの値を再シャッフルします

    テーブル内の値を再シャッフルするには、MySQL RAND()を使用します。 まずテーブルを作成しましょう- mysql> create table DemoTable792 ( Name varchar(100), Subject varchar(100) ); Query OK, 0 rows affected (0.66 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable792 values('Chris','MySQL'); Query OK,

  2. このクエリのMySQL構文エラーは何ですか–予約済みキーワードを使用してテーブルを作成しますか?

    MySQLで予約されたキーワードである「groups」という名前のテーブルを作成しようとしたとします。groupsはMySQLで予約されたキーワードであるため、「groups」は使用できません。 「groups」という名前のテーブルの作成中に次のエラーが発生しました- mysql> create table groups −> ( −> id int, −> name varchar(40) −> ); ERROR 1064 (42000): You have an error in your SQL syntax