刚学习到触发器,当向一个表table1进行insert操作时进就触发,向table2写入一行同样的数据,该怎么写啊,摸不到头绪

解决方案 »

  1.   

    create trigger tri_name after inert on table1
    for eache row
    insert into table2(a,b,c) values(new.a,new.b,new.c);
      

  2.   

    建议参考一下MYSQL官方免费手册中的例子,然后自己尝试写一下。

    CREATE TABLE test1(a1 INT);
    CREATE TABLE test2(a2 INT);
    CREATE TABLE test3(a3 INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
    CREATE TABLE test4(
      a4 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
      b4 INT DEFAULT 0
    );delimiter |CREATE TRIGGER testref BEFORE INSERT ON test1
      FOR EACH ROW BEGIN
        INSERT INTO test2 SET a2 = NEW.a1;
        DELETE FROM test3 WHERE a3 = NEW.a1;
        UPDATE test4 SET b4 = b4 + 1 WHERE a4 = NEW.a1;
      END;
    |delimiter ;INSERT INTO test3 (a3) VALUES
      (NULL), (NULL), (NULL), (NULL), (NULL),
      (NULL), (NULL), (NULL), (NULL), (NULL);INSERT INTO test4 (a4) VALUES
      (0), (0), (0), (0), (0), (0), (0), (0), (0), (0);
      

  3.   

    CREATE TRIGGER testref AFTER INSERT ON table1
      FOR EACH ROW BEGIN
        INSERT INTO table2 select * from new; 
      END;
      

  4.   

    create trigger tri_name after inert on t1
     for eache row
     insert into t2(a,b,c) values(new.F1,new.F1,new.F3);
    将所有字段写上