5

ユーザーが自分でデータを入力するのを忘れた場合に備えて、テーブルのフィールドに値計算値を挿入するために、このトリガーを作成しました。

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 ;
4

1 に答える 1