2

このトリガーで回避できる場合は、これらすべてのselectステートメントを使用する必要がないため、次のコードを改善したいと思います。INSERT中にいくつかのフィールドにデフォルト値を配置する必要があります。コードは機能します。他の提案を探しています。ありがとう!

SET TERM || ;
CREATE TRIGGER populate_defaults FOR units
ACTIVE
BEFORE INSERT
AS
BEGIN
      new.value1 = (select value1 from defaults);
      new.value2 = (select value2 from defaults);
      new.value3 = (select value3 from defaults);
      new.value4 = (select value4 from defaults);
      new.value5 = (select value5 from defaults);
      new.value6 = (select value6 from defaults);
      new.value7 = (select value7 from defaults);
      new.value8 = (select value8 from defaults);
      new.value9 = (select value9 from defaults);
END ||
SET TERM ; ||
4

1 に答える 1

2

単一の選択を行うことができます。これを試して:

SET TERM || ;
CREATE TRIGGER populate_defaults FOR units
ACTIVE
BEFORE INSERT
AS
BEGIN
  select   value1, value2, value3, value4
         , value5, value6, value7, value8
         , value9
    from defaults
    into   new.value1, new.value2, new.value3, new.value4
         , new.value5, new.value6, new.value7, new.value8
         , new.value9
END ||
SET TERM ; ||

newコロンを前に付ける必要があるかどうかは思い出せません。その演習は読者次第です。

于 2013-02-07T17:21:05.750 に答える