各位大神 我想知道 有没有办法在Mysql中  当在一个视图里面插入数据时  触发触发器   我写了老是报错 希望各位大神帮帮忙. 如果有办法 请给出一个例子解决 不胜感激.

解决方案 »

  1.   

    触发器不支持视图吧,你看看mysql手册关于触发器的那节。
    还有就像rucypli说的,为什么往视图里插?
    如果想保持参照完整性那用外键,或触发器after insert多好
      

  2.   

    没办法 是实验的要求 用SQL Server可以做 但是我比较喜欢Mysql 就像知道用Mysql能不能做
      

  3.   

    没办法 是实验的要求 用SQL Server可以做 但是我比较喜欢Mysql 就像知道用Mysql能不能做
      

  4.   

    MYSQL中触发器只能定义在表上。
      

  5.   

         你在表上建立触发器.这个视图是基于这张表的。。你向这个视图中插入数据,是可以触发的。。(你要有对应的insert触发器)
      

  6.   

    当对视图Student_Grade作插入数据项操作时,自动触发Upd_StuView,完成对SC表的插入操作。如:当执行Insert into Student_Grade values(‘王刚’,’数据库’,54) 则触发器完成另一插入操作:Insert into SC values(‘980201’,’CS-110’,54) 另外,需要检查当前插入的学生和课程是否已在Students,和Courses表中存在,如不存在,不执行任何操作,并提示用户错误信息。
    能不能具体说一下:这个是怎么实现?
      

  7.   

    各位大神 我用Mysql写自定义函数,但是老是有问题,不知道错在哪里,请大家帮帮忙啊。
    下面是代码:
    DELIMITER $$
    CREATE FUNCTION Add_Student (SNO VARCHAR(10),SNAME VARCHAR(50),Sex VARCHAR(10),birthday DATA,height DOUBLE,dept VARCHAR(50))
    BEGIN
      INSERT INTO studnets VALUES(SNO,SNAME,Sex,birthday,height,dept);
    END$$
    我纠结了很久 实在不懂,请大家帮帮忙啊
    错误如下:错误码: 1064
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DATA,height DOUBLE,dept VARCHAR(50))
    begin
      INSERT INTO studnets VALUES(SNO,SNA' at line 1
      

  8.   

    DATA
    ? 没有这种数据类型,你是不是想用 date ?
      

  9.   

    我这样改了 也还是不行啊
    DELIMITER$$
    CREATE FUNCTION Add_Student (sno VARCHAR(10),sname VARCHAR(50),sex VARCHAR(1),birthday DATE,height DOUBLE,dept VARCHAR(50))
    BEGIN 
      INSERT INTO students(SNO,SNAME,SEX,BDATE,HEIGHT,DEPARTMENT) VALUES (sno,sname,sex,birthday,height,dept);
    END$$
    错误码如下:
    错误码: 1064
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'begin 
      insert into students(SNO,SNAME,SEX,BDATE,HEIGHT,DEPARTMENT) values (sno' at line 2
      

  10.   

    我加了返回值也不行啊
    代码如下:
    DELIMITER$$
    CREATE FUNCTION Add_Student (sno VARCHAR(10),sname VARCHAR(50),sex VARCHAR(1),birthday DATE,height DOUBLE,dept VARCHAR(50))
    RETURN VARCHAR(50) DETERMINISTIC
    BEGIN  
      INSERT INTO students(SNO,SNAME,SEX,BDATE,HEIGHT,DEPARTMENT) VALUES (sno,sname,sex,birthday,height,dept);
      RETURN CONCAT(sno,'had add');
    END$$
    错误如下:
    错误码: 1064
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'return varchar(50) deterministic
    BEGIN  
      INSERT INTO students(SNO,SNAME,SEX,BD' at line 2Execution Time : 00:00:00:000
    Transfer Time  : 00:00:00:000
    Total Time     : 00:00:00:000