あるテーブルに行を挿入すると、そのテーブルの1分前以上に挿入された
行を全て削除するようなトリガーの作成は可能でしょうか?
トリガーは作れましたが、そのテーブルに行を挿入すると、
> Can't update table 'submitted' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
といわれます。
トリガって、自分自身のテーブルを操作することはできないんですか?
例えば、table_a に行を挿入すると、table_a に行を挿入するトリガーを
作るのは、無限ループになるので駄目なのは分かります。
でも、table_a に行を挿入すると、table_a のある行を削除するトリガーも
作れないようですがどうしてでしょう?
No.1ベストアンサー
- 回答日時:
マニュアルに以下の記載があります。
「ストアド ファンクションまたはトリガ内では、その関数やトリガを実行したステートメントが ( 読み取り、または書込みに ) すでに使用しているテーブルを改変することはできない。」
http://dev.mysql.com/doc/refman/5.1/ja/routine-r …
理由としてはsweepeaさんが考えているように、SQL実行とトリガ実行が無限に繰り返される可能性があり、現状、再帰呼び出しも実装されていないので、入り口で禁止にしているということでしょう。
ご回答ありがとうございます。
むー、なるほど。
ということは、INSERT時に古いデータを自動削除、みたいなことは
できないんですね。
※INSERT→トリガー→ストアドプロシージャ→DELETEとしても、
やはり無理でした。。。
MySQLが駄目なのか、僕のやろうとしてることが駄目なのか。。。
くやしいです。
どうも、ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript javascriptでテーブルに追加した項目のid追加してローカルストレージを操作したい 5 2023/01/01 15:52
- MySQL テーブル作成時のカラムについて 2 2022/08/27 21:48
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- その他(プログラミング・Web制作) python 3.10で 同じlistに同じ構文で同じデータ代入した結果が異なる現象発生 7 2022/06/18 11:08
- MySQL MySQLのテーブル作成でハイフン - は使用できないのでしょうか? 2 2022/10/21 16:50
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- その他(Microsoft Office) エクセルでテーブルの最終行が自動追加されない 1 2023/01/04 15:09
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- MySQL MYSQL エラー 2 2022/10/18 11:37
このQ&Aを見た人はこんなQ&Aも見ています
-
賃貸で可能な古民家風レトロな部屋作りのコツ!改めて知る畳の高い機能性と魅力も紹介
畳の部屋を雰囲気のよい部屋に仕上げたい!賃貸住宅でもできる古民家風のレトロな部屋作りのコツを伺った。
-
特定のカラムが更新されたときのみ、そのレコードを別テーブルへ格納するト
Oracle
-
SELECT INTOで一度に複数の変数へ代入をするにはどのようにすれがよいでしょうか?
PostgreSQL
-
Oracleで上書きImportはできますか?
その他(データベース)
-
-
4
Oracle 8i コンマ(,)を含むデータをinsertしたい
その他(データベース)
-
5
SQLのVARCHARとVARCHAR2の違い
その他(データベース)
-
6
ORA-01858: 数値を指定する箇所に数値以外の文字が指定されています
Java
-
7
トリガからプロシージャのコールについて
Oracle
-
8
PL/SQL PLS-00103エラーについて
Oracle
-
9
SELECT時の行ロックの必要性について
MySQL
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
トリガって、自分自身のテーブ...
-
Excel テーブル内の空白行の削除
-
アクセスのクエリでレコード削...
-
ACCESSのマクロでテーブルのデ...
-
列のDEFAULT設定を削除するコマ...
-
SQLSERVERで関数作成?
-
ワークテーブルなのに自動で削...
-
削除フラグってどうなんでしょう?
-
Accessでデータシートに同じデ...
-
SQLでSUMなどの関数でデータが...
-
SQL、2つのテーブルで条件一致...
-
L2SWはARPテーブルを持っている?
-
SELECT 文の NULL列は?
-
外部キーだけのテーブル(主キ...
-
SQLでUPSERTを一度に複数行やる...
-
テーブル名をカラムとして取得...
-
2つのテーブルで引き算 postgres
-
テーブルリンク リンク元を知...
-
UPDATE文
-
テーブルに存在しない列をselec...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel テーブル内の空白行の削除
-
トリガって、自分自身のテーブ...
-
物理削除と論理削除、どっちが...
-
アクセスのクエリでレコード削...
-
ワークテーブルなのに自動で削...
-
ACCESSのマクロでテーブルのデ...
-
HiRDBのPURGEとDROPの違い
-
大量のレコードを削除する方法
-
列のDEFAULT設定を削除するコマ...
-
Access2000の削除クエリで消し...
-
Access2003 VBAのDELETEについて
-
アクセス2010について
-
リレーションについて
-
SQLSERVERで関数作成?
-
CSVファイルから一括して削除す...
-
条件付DELEATE文について
-
phpMyAdminでMySQL4.1のレコー...
-
ACCESSのデータ入力時の「メモ...
-
削除フラグってどうなんでしょう?
-
すべてのテーブル削除
おすすめ情報