请写出下列操作的SQL语句:"由于人才培养方案的变更,数学与统计学院的数据科学与大数据技术(非师范)专业的编号将变更为编号1203,请直接将专业表中的专业编号1202更改为1203的信息"。
请根据要求完成操作,并回答以下问题:
① 能更新成功吗?
② 若更新失败,请说明原因;若更新成功,请用SELECT语句在专业表中查询数据科学与大数据技术(非师范)专业的相关信息
(1)MySQL语句(2分)
UPDATE major
SET Mno='1203'
WHERE Mno='1202';
(2)回答问题(2分)
① 更新失败
② 因为学生表中有与该专业相关联的学生信息,违反参照完整性(外键)约束
请写出下列操作的SQL语句:"① 将学生表中对Mno的外键声明重新设置可为级联更新;② 再重新更新专业表中数据科学与大数据技术(非师范)专业的专业编号"。
请根据要求完成操作,并回答以下问题:
① 能更新成功吗?
② 若更新失败,请说明原因;若更新成功,请说明更新后的结果是怎样的。
(1)MySQL语句(6分)
① 重新设置外键
ALTER TABLE students
DROP CONSTRAINT FK_Mno;
ALTER TABLE students
ADD CONSTRAINT FK_Mno FOREIGN KEY(Mno)
REFERENCES major(Mno)
ON UPDATE CASCADE;
② 更新专业信息
UPDATE major
SET Mno='1203'
WHERE Mname='数据科学与大数据技术(非师范)';
(2)回答问题(2分)
① 更新成功
② 因为设置了级联更新,所以当更新专业表中的专业编号时,系统会自动将学生表中该专业编号更新为新的专业编号