有3个表fac1,fac2,fac3分别储存一级指标,二级指标,三级指标,
以下是3个表的创建语法:
CREATE TABLE fac1(
学号 VARCHAR(20) PRIMARY KEY,
自身因素 FOLAT CHECK(自身因素 >=0 AND 自身因素<=100 ),
共同因素 FOLAT CHECK(共同因素 >= 0 AND 共同因素<=100),
FOREIGN KEY (学号) REFERENCES stu(学号)
);CREATE TABLE fac2(
学号 VARCHAR(20) PRIMARY KEY,
政治觉悟 FOLAT CHECK(政治觉悟 >=0 AND 政治觉悟<=100 ),
思想品德 FOLAT CHECK(思想品德 >=0 AND 思想品德<=100 ),
心理因素 FOLAT CHECK(心理因素 >=0 AND 心理因素<=100 ),
生理因素 FOLAT CHECK(生理因素 >=0 AND 生理因素<=100 ),
学业因素 FOLAT CHECK(学业因素 >=0 AND 学业因素<=100 ),
家庭因素 FOLAT CHECK(家庭因素 >=0 AND 家庭因素<=100 ),
情感因素 FOLAT CHECK(情感因素 >=0 AND 情感因素<=100 ),
就业因素 FOLAT CHECK(就业因素 >=0 AND 就业因素<=100 ),
班级因素 FOLAT CHECK(班级因素 >=0 AND 班级因素<=100 ),
学校管理 FOLAT CHECK(学校管理 >=0 AND 学校管理<=100 ),
社会影响 FOLAT CHECK(社会影响 >=0 AND 社会影响<=100 ),
FOREIGN KEY (学号) REFERENCES stu(学号)
);CREATE TABLE fac3(
学号 VARCHAR(20) PRIMARY KEY,
向党组织靠拢程度 FOLAT CHECK(向党组织靠拢程度 >=0 AND 向党组织靠拢程度<=100 ),
思想汇报情况 FOLAT CHECK(思想汇报情况 >=0 AND 思想汇报情况<=100 ),
政治关注度 FOLAT CHECK(政治关注度 >=0 AND 政治关注度<=100 ),
宗教信仰 FOLAT CHECK(宗教信仰 >=0 AND 宗教信仰<=100 ),
人生追求 FOLAT CHECK(人生追求 >=0 AND 人生追求<=100 ),
道德标准认同感 FOLAT CHECK(道德标准认同感 >=0 AND 道德标准认同感<=100 ),
常用规范认知 FOLAT CHECK(常用规范认知 >=0 AND 常用规范认知<=100 ),
规范执行情况 FOLAT CHECK(规范执行情况 >=0 AND 规范执行情况<=100 ),
成长环境的影响 FOLAT CHECK(成长环境的影响 >=0 AND 成长环境的影响<=100 ),
精神状态 FOLAT CHECK(精神状态 >=0 AND 精神状态<=100 ),身体健康情况 FOLAT CHECK(身体健康情况 >=0 AND 身体健康情况<=100 ),
对学业的态度 FOLAT CHECK(对学业的态度 >=0 AND 对学业的态度<=100 ),
学习目的 FOLAT CHECK(学习目的 >=0 AND 学习目的<=100 ),
成绩稳定度 FOLAT CHECK(成绩稳定度 >=0 AND 成绩稳定度<=100 ),
家庭经济情况 FOLAT CHECK(家庭经济情况 >=0 AND 家庭经济情况<=100 ),
家庭完整情况 FOLAT CHECK(家庭完整情况 >=0 AND 家庭完整情况<=100 ),
父母健康情况 FOLAT CHECK(父母健康情况 >=0 AND 父母健康情况<=100 ),
宿舍内部感情 FOLAT CHECK(宿舍内部感情 >=0 AND 宿舍内部感情<=100 ),
师生间感情 FOLAT CHECK(师生间感情 >=0 AND 师生间感情<=100 ),
两性关系认识 FOLAT CHECK(两性关系认识 >=0 AND 两性关系认识<=100 ),婚姻认识 FOLAT CHECK(婚姻认识 >=0 AND 婚姻认识<=100 ),
职业生涯规划情况 FOLAT CHECK(职业生涯规划情况 >=0 AND 职业生涯规划情况<=100 ),
就业压力 FOLAT CHECK(就业压力 >=0 AND 就业压力<=100 ),
班级同学间感情 FOLAT CHECK(班级同学间感情 >=0 AND 班级同学间感情<=100 ),
班级总体学习成绩 FOLAT CHECK(班级总体学习成绩 >=0 AND 班级总体学习成绩<=100 ),
政策被理解认同度 FOLAT CHECK(政策被理解认同度 >=0 AND 政策被理解认同度<=100 ),
政策执行力 FOLAT CHECK(政策执行力 >=0 AND 政策执行力<=100 ),
辅导员与学生的信任关系 FOLAT CHECK(辅导员与学生的信任关系 >=0 AND 辅导员与学生的信任关系<=100 ),
教师的敬业度 FOLAT CHECK(教师的敬业度 >=0 AND 教师的敬业度<=100 ),
相关管理机构的专业化程度 FOLAT CHECK(相关管理机构的专业化程度 >=0 AND 相关管理机构的专业化程度<=100 ),经济危机的影响 FOLAT CHECK(经济危机的影响 >=0 AND 经济危机的影响<=100 ),
商业化利益的影响 FOLAT CHECK(商业化利益的影响 >=0 AND 商业化利益的影响<=100 ),
非理性的信息传播 FOLAT CHECK(非理性的信息传播 >=0 AND 非理性的信息传播<=100 ),
FOREIGN KEY (学号) REFERENCES stu(学号)
);
然后想在mysql创建一个触发器,当三级指标中插入数据时,也就是fac3中插入数据后,在fac1,fac2也插入数据,插入的数据要根据fac3的数据跟权重相乘得出的,下面是创建的语法:CREATE TRIGGER addfac ON fac3 FOR INSERT 
AS
DECLARE @学号 VARCHAR(20),@向党组织靠拢程度 FLOAT,@思想汇报情况 FLOAT,@政治关注度 FLOAT,@宗教信仰 FLOAT,@人生追求 FLOAT,
@道德标准认同感 FLOAT,@常用规范认知 FLOAT,@规范执行情况 FLOAT,@成长环境的影响 FLOAT,@精神状态 FLOAT,@身体健康情况 FLOAT,
@对学业的态度 FLOAT,@学习目的 FLOAT,@成绩稳定度 FLOAT,@家庭经济情况 FLOAT,@家庭完整情况 FLOAT,@父母健康情况 FLOAT,
@宿舍内部感情 FLOAT,@师生间感情 FLOAT,@两性关系认识 FLOAT,@婚姻认识 FLOAT,@职业生涯规划情况 FLOAT,@就业压力 FLOAT,
@班级同学间感情 FLOAT,@班级总体学习成绩 FLOAT,@政策被理解认同度 FLOAT,@政策执行力 FLOAT,@辅导员与学生的信任关系 FLOAT,@教师的敬业度 FLOAT,
@相关管理机构的专业化程度 FLOAT,@经济危机的影响 FLOAT,@商业化利益的影响 FLOAT,@非理性的信息传播 FLOAT
DECLARE @政治觉悟 FLOAT,@思想品德 FLOAT,@心理因素 FLOAT,@生理因素 FLOAT,@学业因素 FLOAT,@家庭因素 FLOAT,@情感因素 FLOAT,@就业因素 FLOAT,@班级因素 FLOAT,@学校管理 FLOAT,@社会影响 FLOAT
DECLARE @自身因素 FLOAT,@共同因素 FLOAT
SELECT @学号=学号,@向党组织靠拢程度=向党组织靠拢程度,@思想汇报情况=思想汇报情况,@政治关注度=政治关注度,@宗教信仰=宗教信仰,
@人生追求=人生追求,@道德标准认同感=道德标准认同感,@常用规范认知=常用规范认知,@规范执行情况=规范执行情况,@成长环境的影响=成长环境的影响,
@精神状态=精神状态,@身体健康情况=身体健康情况,@对学业的态度=对学业的态度,@学习目的=学习目的,@成绩稳定度=成绩稳定度,
@家庭经济情况=家庭经济情况,@家庭完整情况=家庭完整情况,@父母健康情况=父母健康情况,@宿舍内部感情=宿舍内部感情,@师生间感情=师生间感情,
@两性关系认识=两性关系认识,@婚姻认识=婚姻认识,@职业生涯规划情况=职业生涯规划情况,@就业压力=就业压力,@班级同学间感情=班级同学间感情,
@班级总体学习成绩=班级总体学习成绩,@政策被理解认同度=政策被理解认同度,@政策执行力=政策执行力,@辅导员与学生的信任关系=辅导员与学生的信任关系,@教师的敬业度=教师的敬业度,
@相关管理机构的专业化程度=相关管理机构的专业化程度,@经济危机的影响=经济危机的影响,@商业化利益的影响=商业化利益的影响,@非理性的信息传播=非理性的信息传播 
FROM inserted
SET @政治觉悟=@向党组织靠拢程度*0.289+@思想汇报情况*0.236+@政治关注度*0.228+@宗教信仰*0.248
SET @思想品德=@人生追求*0.338+@道德标准认同感*0.277+@常用规范认知*0.160+@规范执行情况*0.225
SET @心理因素=@成长环境的影响*0.715+@精神状态*0.285
SET @生理因素=@身体健康情况
SET @学业因素=@对学业的态度*0.408+@学习目的*0.451+@成绩稳定度*0.141
SET @家庭因素=@家庭经济情况*0.142+@家庭完整情况*0.550+@父母健康情况*0.308
SET @情感因素=@宿舍内部感情*0.332+@师生间感情*0.246+@两性关系认识*0.237+@婚姻认识*0.185
SET @就业因素=@职业生涯规划情况*0.746@就业压力*0.254
SET @班级因素=@班级同学间感情*0.617+@班级总体学习成绩*0.383
SET @学校管理=@政策被理解认同度*0.254+@政策执行力*0.129+@辅导员与学生的信任关系*0.243+@教师的敬业度*0.175+@相关管理机构的专业化程度*0.199
SET @社会影响=@经济危机的影响*0.168+@商业化利益的影响*0.379+@非理性的信息传播*0.453
SET @自身因素=@政治觉悟*0.205+@思想品德*0.199+@心理因素*0.157+@生理因素*0.077+@学业因素*0.083+@家庭因素*0.093+@情感因素*0.086+@就业因素*0.100
SET @共同因素=@班级因素*0.409+@学校管理*0.399+@社会影响*0.192
INSERT INTO fac2 VALUES(@学号,@政治觉悟,@思想品德,@心理因素,@生理因素,@学业因素,@家庭因素,@情感因素,@就业因素,@班级因素,@学校管理,@社会影响)
INSERT INTO fac1 VALUES(@学号,@自身因素,@共同因素)
但是出现了错误:
Query : CREATE TRIGGER addfac ON fac3 FOR INSERT  AS begin DECLARE @ss VARCHAR(20),@ss1 FLOAT,@sss FLOAT,@ss2 FLOAT,@ss3 FLOAT,@ss3 FLOA...Error Code : 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 'ON fac3 FOR INSERT 
AS
begin
DECLARE @ss VARCHAR(20),@ss1 FLOAT,@sss FLOAT,@ss2 ' at line 1Execution Time : 00:00:00:000
Transfer Time  : 00:00:00:000
Total Time     : 00:00:00:000是语法错误?
我是新手,麻烦高手给我指点下哪里错了?应该怎么改?

解决方案 »

  1.   

    请到 mysql 版面。这边是 mssql
      

  2.   

    先把@X 都替换成 v_X  试一下,CREATE TRIGGER addfac ON fac3 FOR INSERT 
    AS
    DECLARE v_学号 VARCHAR(20),v_向党组织靠拢程度 FLOAT,v_思想汇报情况 FLOAT,v_政治关注度 FLOAT,v_宗教信仰 FLOAT,v_人生追求 FLOAT,
    v_道德标准认同感 FLOAT,v_常用规范认知 FLOAT,v_规范执行情况 FLOAT,v_成长环境的影响 FLOAT,v_精神状态 FLOAT,v_身体健康情况 FLOAT,
    v_对学业的态度 FLOAT,v_学习目的 FLOAT,v_成绩稳定度 FLOAT,v_家庭经济情况 FLOAT,v_家庭完整情况 FLOAT,v_父母健康情况 FLOAT,
    v_宿舍内部感情 FLOAT,v_师生间感情 FLOAT,v_两性关系认识 FLOAT,v_婚姻认识 FLOAT,v_职业生涯规划情况 FLOAT,v_就业压力 FLOAT,
    v_班级同学间感情 FLOAT,v_班级总体学习成绩 FLOAT,v_政策被理解认同度 FLOAT,v_政策执行力 FLOAT,v_辅导员与学生的信任关系 FLOAT,v_教师的敬业度 FLOAT,
    v_相关管理机构的专业化程度 FLOAT,v_经济危机的影响 FLOAT,v_商业化利益的影响 FLOAT,v_非理性的信息传播 FLOAT
    DECLARE v_政治觉悟 FLOAT,v_思想品德 FLOAT,v_心理因素 FLOAT,v_生理因素 FLOAT,v_学业因素 FLOAT,v_家庭因素 FLOAT,v_情感因素 FLOAT,v_就业因素 FLOAT,v_班级因素 FLOAT,v_学校管理 FLOAT,v_社会影响 FLOAT
    DECLARE v_自身因素 FLOAT,v_共同因素 FLOAT
    SELECT v_学号=学号,v_向党组织靠拢程度=向党组织靠拢程度,v_思想汇报情况=思想汇报情况,v_政治关注度=政治关注度,v_宗教信仰=宗教信仰,
    v_人生追求=人生追求,v_道德标准认同感=道德标准认同感,v_常用规范认知=常用规范认知,v_规范执行情况=规范执行情况,v_成长环境的影响=成长环境的影响,
    v_精神状态=精神状态,v_身体健康情况=身体健康情况,v_对学业的态度=对学业的态度,v_学习目的=学习目的,v_成绩稳定度=成绩稳定度,
    v_家庭经济情况=家庭经济情况,v_家庭完整情况=家庭完整情况,v_父母健康情况=父母健康情况,v_宿舍内部感情=宿舍内部感情,v_师生间感情=师生间感情,
    v_两性关系认识=两性关系认识,v_婚姻认识=婚姻认识,v_职业生涯规划情况=职业生涯规划情况,v_就业压力=就业压力,v_班级同学间感情=班级同学间感情,
    v_班级总体学习成绩=班级总体学习成绩,v_政策被理解认同度=政策被理解认同度,v_政策执行力=政策执行力,v_辅导员与学生的信任关系=辅导员与学生的信任关系,v_教师的敬业度=教师的敬业度,
    v_相关管理机构的专业化程度=相关管理机构的专业化程度,v_经济危机的影响=经济危机的影响,v_商业化利益的影响=商业化利益的影响,v_非理性的信息传播=非理性的信息传播 
    FROM inserted
    SET v_政治觉悟=v_向党组织靠拢程度*0.289+v_思想汇报情况*0.236+v_政治关注度*0.228+v_宗教信仰*0.248
    SET v_思想品德=v_人生追求*0.338+v_道德标准认同感*0.277+v_常用规范认知*0.160+v_规范执行情况*0.225
    SET v_心理因素=v_成长环境的影响*0.715+v_精神状态*0.285
    SET v_生理因素=v_身体健康情况
    SET v_学业因素=v_对学业的态度*0.408+v_学习目的*0.451+v_成绩稳定度*0.141
    SET v_家庭因素=v_家庭经济情况*0.142+v_家庭完整情况*0.550+v_父母健康情况*0.308
    SET v_情感因素=v_宿舍内部感情*0.332+v_师生间感情*0.246+v_两性关系认识*0.237+v_婚姻认识*0.185
    SET v_就业因素=v_职业生涯规划情况*0.746v_就业压力*0.254
    SET v_班级因素=v_班级同学间感情*0.617+v_班级总体学习成绩*0.383
    SET v_学校管理=v_政策被理解认同度*0.254+v_政策执行力*0.129+v_辅导员与学生的信任关系*0.243+v_教师的敬业度*0.175+v_相关管理机构的专业化程度*0.199
    SET v_社会影响=v_经济危机的影响*0.168+v_商业化利益的影响*0.379+v_非理性的信息传播*0.453
    SET v_自身因素=v_政治觉悟*0.205+v_思想品德*0.199+v_心理因素*0.157+v_生理因素*0.077+v_学业因素*0.083+v_家庭因素*0.093+v_情感因素*0.086+v_就业因素*0.100
    SET v_共同因素=v_班级因素*0.409+v_学校管理*0.399+v_社会影响*0.192
    INSERT INTO fac2 VALUES(v_学号,v_政治觉悟,v_思想品德,v_心理因素,v_生理因素,v_学业因素,v_家庭因素,v_情感因素,v_就业因素,v_班级因素,v_学校管理,v_社会影响)
    INSERT INTO fac1 VALUES(v_学号,v_自身因素,v_共同因素)