我正在尝试创建一个触发器(这是我的第一个触发器,也是一个问题,所以要温柔),它将新行插入两个不同的表中。
* 编辑 *
在ypercube回答之前我忘了提及它,所以添加了这个。我试图避免列出所有列名,因为在实际使用中,将使用的表有大量列(不是我的设计,重构太晚了)。
*结束编辑*
这是我到目前为止所拥有的。
CREATE TABLE test_table (
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
message VARCHAR(255)
);
CREATE TABLE test_table_copy LIKE test_table;
DELIMITER $$
CREATE TRIGGER copy_test_table_data AFTER INSERT ON test_table
FOR EACH ROW
BEGIN
INSERT INTO test_table_copy SELECT * FROM NEW;
END;$$
DELIMITER ;
不幸的是,这会导致错误。
mysql> INSERT INTO test_table VALUES (1, 'This is a message');
ERROR 1146 (4502): Table 'test_db.NEW' doesn't exist
我不太确定问题是什么,我认为 NEW 指的是表数据正在被插入?