gpt4 book ai didi

mysql - 为什么这个MySQL触发器不能正常执行?

转载 作者:行者123 更新时间:2023-11-29 08:56:59 24 4
gpt4 key购买 nike

我正在为客户安装 WordPress。他选择的电子商务插件与 Wordpress 用户集成得不好。当在 WordPress 中创建新用户记录时,我试图将新记录插入到插件的用户帐户系统中。对我来说,似乎 wp_users 表上的触发器在插入之前将用户数据复制到插件表就可以解决问题。够简单的。但是,在我的测试中,我无法让 wp_users 表触发器执行任何操作。如果触发事件是插入前或插入后,新用户帐户创建将挂起并阻止数据插入到 wp_users。当指定Before Update时,它允许在wp_users中插入数据,但不允许在Plugin表中插入数据。它从来没有正确执行过触发器。这是我的代码:

DROP TRIGGER IF EXISTS  `user_update`//
CREATE TRIGGER `dbname`.`user_update`
AFTER INSERT
ON `wp_users` FOR EACH ROW
BEGIN
INSERT INTO `test_data_dump` (`username`, `password`, `email`, `first_name`, `created_at`) VALUES(user_login, user_pass, user_email, user_nicename, user_registered);
END

任何见解都会对immensley有所帮助。

最佳答案

问题出在这一行。当您引用新插入的数据时,您需要使用单词new:

INSERT INTO 'test_data_dump' ('username', 'password', 'email', 'first_name', 'created_at')
VALUES (new.user_login, new.user_pass, new.user_email, new.user_nicename, new.user_registered);

编辑:假设所有表列和名称都匹配,则此语法应该有效:

DROP TRIGGER IF EXISTS user_update;

CREATE TRIGGER user_update AFTER INSERT ON wp_users
FOR EACH ROW BEGIN
INSERT INTO test_data_dump ('username', 'password', 'email', 'first_name', 'created_at')
VALUES (new.user_login, new.user_pass, new.user_email, new.user_nicename, new.user_registered);
END;

关于mysql - 为什么这个MySQL触发器不能正常执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9691201/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com