作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两张 table
测试表:
id data_text
1 *some text*
撤消测试表:
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) 中的最后一个位置,我不知道如何让它工作像这样:
撤消测试表:
modification_date id data_text
我试过了:
SELECT NOW() AS modification_date,* FROM test_table ...
代替
SELECT *,NOW() AS modification_date FROM test_table ...
但是有语法错误。
我想我需要一些类似 UNION 的东西,但我不知道如何在一个 UNION 中使用 NOW() AS modification_date
最佳答案
您需要使用表名限定 *
:
SELECT NOW() AS modification_date, t.*
-- Here ---------------------------^
FROM test_table
-- etc...
关于mysql (copy) insert into from select 并添加一个别名列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44079450/
我是一名优秀的程序员,十分优秀!