现在要实现的功能是一张会员表 具体字段什么不清楚 但是可以确定有一个username字段
现在要实现的是在我插入新记录的时候如果username已经存在,则转成username+后缀插入表中
请问这个触发器要怎么写

解决方案 »

  1.   

    mysql> create table t4 (
        ->  id int primary key,
        ->  username varchar(10),
        ->  othercol int
        -> );
    Query OK, 0 rows affected (0.09 sec)mysql> delimiter //
    mysql>
    mysql> CREATE TRIGGER testref BEFORE INSERT ON t4
        ->   FOR EACH ROW BEGIN
        ->          declare bExists INT default 0;
        ->          select 1 into bExists from t4 where username=new.username;
        ->          if bExists>0 then
        ->                  set new.username = concat(new.username,'.1');
        ->          end if;
        ->   END;
        -> //
    Query OK, 0 rows affected (0.05 sec)mysql>
    mysql> delimiter ;
    mysql>
    mysql> insert into t4 values(1,'AA',10);
    Query OK, 1 row affected, 1 warning (0.08 sec)mysql> select * from t4;
    +----+----------+----------+
    | id | username | othercol |
    +----+----------+----------+
    |  1 | AA       |       10 |
    +----+----------+----------+
    1 row in set (0.00 sec)mysql> insert into t4 values(2,'AA',10);
    Query OK, 1 row affected (0.05 sec)mysql> select * from t4;
    +----+----------+----------+
    | id | username | othercol |
    +----+----------+----------+
    |  1 | AA       |       10 |
    |  2 | AA.1     |       10 |
    +----+----------+----------+
    2 rows in set (0.02 sec)