我收到此错误后,已与我的托管服务提供商进行了交谈。我以为这是关于mysql的。但他们对我说,这是关于我的数据库中的表格以及我用作查询的代码。
这是我第一次在Php中使用Trigger。因此,即使我检查了我的代码并在互联网上搜索了这个问题,我也无法解决问题。
首先,我想告诉你我想做什么。我的数据库中有三个表。这些是用户,user_hobbies和爱好。
在users表中有5列。
user_id | user_name | user_surname | user_mail | user_phonenumber
在爱好表中有2列。
hobbies_id | hobbies_name
在user_hobbies表中有2列。
user_id | hobbies_id
有两种形式。其中一个是增加爱好。我增加了一些爱好,如游泳,钓鱼等,爱好在登记表格的列表菜单中显示,这是第二种形式。在提交注册表之前,用户必须填写如下空格。
用户名,用户姓,用户邮件,用户电话号码和爱好。
提交表单后,数据将如下插入。例如,
user_id | user_name | user_surname | user_mail | user_phonenumber
1 barita baritax example@ 123-1234567
example.com
2 stack overflow example2@ 147-1478963
example.com
hobbies_id | hobbies_name
1 swimming
2 fishing
3 drawing
user_id | hobbies_id
1 1
2 1
2 2
要做到这一点,我需要在互联网上搜索时使用触发器,我也在这里阅读一些解决方案。因此,在将user_id写入users表时,将user_id写入user_hobbies表是第一个挑战。第二个挑战是将hobbies_id写在用户id的旁边。但对于第一个挑战,我需要你的帮助。
我顺便使用CodeIgniter。我尝试触发的代码如下。
我的model.php
public function add_usershobbies($post)
{
$this->db->query("CREATE TRIGGER first_trig AFTER INSERT ON users
FOR EACH ROW
BEGIN
INSERT INTO user_hobbies VALUES(new.user_id);
END;");
}
我希望从这个查询中,user_id应该插入到两个表users和user_hobbies中。
但是当我使用此查询提交注册表单时出现错误。错误如下。
错误号码:1235
此版本的MySQL尚不支持“具有相同操作时间和事件的多个触发器”一个表
创建TRIGGER first_trig在INSERT ON后用户FOR EACH ROW BEGIN INSERT INTO user_hobbies VALUES(new.user_id); END;
文件名:/home/example.com/httpdocs/models/model.php
行号:64
我该如何解决这个问题?