当对视图Student_Grade作插入数据项操作时,自动触发Upd_StuView,完成对SC表的插入操作。如:当执行Insert into Student_Grade values(‘王刚’,’数据库’,54) 则触发器完成另一插入操作:Insert into SC values(‘980201’,’CS-110’,54) 另外,需要检查当前插入的学生和课程是否已在Students,和Courses表中存在,如不存在,不执行任何操作,并提示用户错误信息。 能不能具体说一下:这个是怎么实现?
各位大神 我用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
DATA ? 没有这种数据类型,你是不是想用 date ?
我这样改了 也还是不行啊 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
我加了返回值也不行啊 代码如下: 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
还有就像rucypli说的,为什么往视图里插?
如果想保持参照完整性那用外键,或触发器after insert多好
能不能具体说一下:这个是怎么实现?
下面是代码:
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
? 没有这种数据类型,你是不是想用 date ?
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
代码如下:
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