ユーザーが自分でデータを入力するのを忘れた場合に備えて、テーブルのフィールドに値計算値を挿入するために、このトリガーを作成しました。
DELIMITER //
CREATE TRIGGER OnNewTableRegistry BEFORE INSERT ON eduardo8_plataforma.tabela
FOR EACH ROW
BEGIN
IF NEW.ut = null THEN
SET NEW.ut = GetUT('tabela');
ELSEIF NEW.ut = '' THEN
SET NEW.ut = GetUT('tabela');
END IF;
END;
//
DELIMITER ;
しかし、そのデータベース内のすべてのテーブルで同じことを行う必要があります。tabela
すべてのテーブルに同じトリガーを使用することは可能ですか? はいの場合、指定されている 6 行目と 8 行目でそれを使用するようにトリガーされたテーブルの名前を取得するにはどうすればよいですか?
私はこのようなものが必要です:
DELIMITER //
CREATE TRIGGER OnNewTableRegistry BEFORE INSERT ON (* as _TableName)
FOR EACH ROW
BEGIN
IF NEW._TableName.ut = null THEN
SET NEW._TableName.ut = GetUT(_TableName);
ELSEIF NEW._TableName.ut = '' THEN
SET NEW._TableName.ut = GetUT(_TableName);
END IF;
END;
//
DELIMITER ;