完全な答えではありませんが、正しい方向に進むにはこれで十分かもしれません...
DELIMTER $$
CREATE TRIGGER stud_first_ar
AFTER INSERT ON stud_first
FOR EACH ROW
BEGIN
INSERT INTO stud_second
(`name`, `stud-id`, `age`,`class`,`number_of-course_taken`)
VALUES
(NEW.`name`,NEW.`stud-id`,NEW.`age`,NEW.`class`,NEW.`number_of-course_taken`);
INSERT INTO stud_audit (`name`, `time copied`)
VALUES (NEW.`name`,UTC_TIMESTAMP());
END$$
タイムゾーンの問題に関心がない場合は、NOW()
代わりに を使用できます。UTC_TIMESTAMP()
ダッシュとスペースを含む列名の選択は標準的ではありません...許可されていますが、通常はそれを避けると簡単です。
2 つの個別の監査テーブルではなく、実際には 1 つの監査テーブルのみを使用します。これは、「アクション」(変更が INSERT、UPDATE、または DELETE のいずれによるものかを識別する)、「アクター」(アクションを引き起こしたプロセスまたはユーザーを識別する)、および UTC タイムスタンプの追加列を含むテーブルのコピーである可能性があります。
OLD.
特別な " " レコードが利用できる場合、UPDATE および DELETE アクションの "監査" トリガーも考慮する必要があります。
繰り返しますが、完全な答えではありませんが、正しい方向に進むにはこれで十分かもしれません。