在 MySQL 8 数据库中,我有两个不同模式的相同表,其中一个用作其等效生产表的临时表。这些表包含 200 多个列,将来还会添加更多列,这使得显式定义列名称的值变得困难。
我需要使用 AFTER INSERT 触发器将生产表中的值与临时表中的值进行 INSERT 或 UPDATE,其中生产表中行的所有值都将在存在重复主键时被替换。请注意,生产表已定义其主键。
此后,我应该从临时表中删除所有行。
这是我尝试过的代码:
CREATE TRIGGER stage.my_table_after_insert AFTER INSERT ON my_table
FOR EACH ROW
BEGIN
REPLACE INTO prod.my_table
SELECT * FROM new;
DELETE FROM stage.my_table
END
最佳答案
我不明白你为什么这样做,但你为什么不做类似的事情:
REPLACE INTO prod.my_table
SELECT * FROM stage.my_table;
DELETE FROM stage.my_table;
关于MySQL 使用相同的临时表触发器替换表值而不定义列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55709243/