无法创建触发器。错误1235

时间:2015-03-16 08:18:14

标签: mysql database forms codeigniter triggers

我收到此错误后,已与我的托管服务提供商进行了交谈。我以为这是关于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

我该如何解决这个问题?

0 个答案:

没有答案