1

以下にトリガーを書きましたが、テーブルに挿入すると、挿入された単語が本来のように大文字になりません。(エラーもありません)。可能な解決策はありますか?(更新しようとしているテーブルにトリガーを入れることができないと読んだので、従業員とemployee2テーブルがあります)。

DELIMITER $$
DROP TRIGGER IF EXISTS mytrigger$$
CREATE TRIGGER mytrigger before INSERT ON employee FOR EACH ROW
BEGIN
 update employee2
 SET employee2.FName = CONCAT(UCASE(LEFT(employee2.FName, 1)), LCASE(SUBSTRING(employee2.FName, 2)));
END;
$$
DELIMITER ;
4

1 に答える 1

3

更新しようとしているテーブルにトリガーを設定できますが、UPDATE クエリを実行することはできません。代わりに、挿入する前にデータを変更します。

DELIMITER $$
DROP TRIGGER IF EXISTS mytrigger$$
CREATE TRIGGER mytrigger before INSERT ON employee FOR EACH ROW
BEGIN
  SET NEW.FName = CONCAT(UCASE(LEFT(NEW.FName, 1)), LCASE(SUBSTRING(NEW.FName, 2)));
END;
$$
DELIMITER ;

「NEW」キーワードを使用すると、挿入されるデータにアクセスできます。

于 2012-12-05T04:30:57.593 に答える