あるテーブルに行を挿入すると、そのテーブルの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も見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
特定のカラムが更新されたときのみ、そのレコードを別テーブルへ格納するト
Oracle
-
トリガからプロシージャのコールについて
Oracle
-
Oracle 8i コンマ(,)を含むデータをinsertしたい
その他(データベース)
-
-
4
Oracleで上書きImportはできますか?
その他(データベース)
-
5
SQLのVARCHARとVARCHAR2の違い
その他(データベース)
-
6
ストアドプロシジャからストアドプロシジャを呼ぶには?
Oracle
-
7
【PL/SQL】FROM区に変数を使う方法
Oracle
-
8
データ
Oracle
-
9
PL/SQL PLS-00103エラーについて
Oracle
-
10
SELECT INTOで一度に複数の変数へ代入をするにはどのようにすれがよいでしょうか?
PostgreSQL
-
11
ORA-01858: 数値を指定する箇所に数値以外の文字が指定されています
Java
-
12
SELECT時の行ロックの必要性について
MySQL
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel テーブル内の空白行の削除
-
削除フラグってどうなんでしょう?
-
リサイクルビンのテーブル削除方法
-
男性と2人で飲食店に行きテーブ...
-
テーブルにcsvファイルをインポ...
-
エクセルで都道府県、市区町村...
-
vers か a か(フランス語)
-
バイキングのトレーの形
-
このテーブルで
-
SQLです!!教えてください。あ...
-
お金持ちのテーブル
-
特定物と不代替物の違い
-
Notion@リレーション値の取得...
-
今度同じサークルだった女の子...
-
ダイニングテーブルの真上に来...
-
ちょっとぐらいの時間なら里山...
-
33シーマ フロントテーブルにつ...
-
ACCESSには NETWORKDAYS関数は...
-
ROWNUMでUPDATEをしたいのです...
-
オーダーの覚え方について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel テーブル内の空白行の削除
-
トリガって、自分自身のテーブ...
-
物理削除と論理削除、どっちが...
-
ワークテーブルなのに自動で削...
-
アクセスのクエリでレコード削...
-
ACCESSのマクロでテーブルのデ...
-
HiRDBのPURGEとDROPの違い
-
大量のレコードを削除する方法
-
列のDEFAULT設定を削除するコマ...
-
Access2000の削除クエリで消し...
-
Access2003 VBAのDELETEについて
-
アクセス2010について
-
リレーションについて
-
SQLSERVERで関数作成?
-
CSVファイルから一括して削除す...
-
条件付DELEATE文について
-
削除フラグってどうなんでしょう?
-
ACCESSのデータ入力時の「メモ...
-
phpMyAdminでMySQL4.1のレコー...
-
リサイクルビンのテーブル削除方法
おすすめ情報