我有2张桌子
TEST_TABLE:
id data_text
1 *some text*
undo_test_table:
id data_text modification_date
CREATE TRIGGER undo_trigger BEFORE UPDATE
ON test_table
FOR EACH ROW
INSERT INTO undo_test_table SELECT *,NOW() AS modification_date
FROM test_table
WHERE id = NEW.id
我尝试的是,如果第一个表上的一列被修改,那么触发器(undo_trigger)被触发并将整行复制到另一个表(undo_test_table)
但是在第二个表(undo_test_table)中我还有一个列(modification_date)
问题:
以上示例运作良好但如果我在第一个位置更改(modification_date)列而不是(undo_test_table)中的最后一个位置,我就不知道如何使其正常工作 像这样:
undo_test_table:
modification_date id data_text
我试过了:
SELECT NOW() AS modification_date,* FROM test_table ...
而不是
SELECT *,NOW() AS modification_date FROM test_table ...
但是得到了sintax错误。
我想我需要一些像UNION,但我不知道如何在一个UNION中使用 NOW()AS modification_date
答案 0 :(得分:0)
您需要使用表格的名称限定*
:
SELECT NOW() AS modification_date, t.*
-- Here ---------------------------^
FROM test_table
-- etc...