mysql(copy)从select插入并添加一个别名列

时间:2017-05-19 21:45:16

标签: mysql

我有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

1 个答案:

答案 0 :(得分:0)

您需要使用表格的名称限定*

SELECT NOW() AS modification_date, t.* 
-- Here ---------------------------^
FROM   test_table
-- etc...