|
|
|
| ||||||||||||||||||||||||||
|
|
«
Previous Thread
|
Next Thread
»
|
Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
#1
|
|||
|
|||
|
Trigger Error 1064
animaldetails
Animal_Id int (primary key) IsMilking varchar (Yes/NO) Milking_Capacity varchar milking Animal_Id int (primary key) MonthYear varcahr (eg. '6 2009' -- June 2009) Day1 varchar Day2 varchar and so on (till 31) milkingevent TrigPoint int (primary key) Requirements: 1. I require a trigger for table3 After update. Loop 1 2. In table 1 it will search in each row for attribute IsMilking if it is YES it will store value of Milking_Capacity in an variable1 as well as Animal_Id in another variable2. Loop2 3. Now it should go to table 2 search for Animal_Id from variable2. and Match with current month and year 4. * If no record is found INSERT statement "Insert into table2..." values (variable2, current(month and Year), { eg. if to days date is 1 then value of variable1 in Day1 and reset all others to default value) * If record exists in milking table, Update statement "Update into table2 ..." (where if current date is 28 then set value in Day 28 reset should be as it is.....) 5. After it gets completed Go to loop 1 and search for Second animal ID and the process continues. MYSQL: Code:
CREATE TRIGGER TBU_milkingevent After Update ON milkingevent
FOR EACH ROW BEGIN
DECLARE @_lAnimal_Idint INT DEFAULT 0;
DECLARE @_lIsMilking INT DEFAULT 0;
DECLARE @_lMilking_Capacity VARCHAR(50) DEFAULT "";
DECLARE @_lMonth_Year VARCHAR(50) DEFAULT "";
DECLARE @_lCount INT DEFAULT 0;
DECLARE @_lAnimal_Id INT DEFAULT 0;
DECLARE Table1_CUR CURSOR FOR SELECT Milk_Capacity,Animal_Id FROM animaldetails WHERE IsMilking= 'Yes';
OPEN Table1_CUR;
FETCH Table1_CUR INTO @_lMilking_Capacity,@_lAnimal_Idint;
BEGIN
SET @_lMonth_Year= SELECT CONCAT(MONTH(current_date), ' ',YEAR(current_date));
SET @_lCount = Select COUNT(*) FROM milking WHERE Animal_Id=@_lAnimal_Idint AND MonthYear=@_lMonth_Year;
IF @_lCount>0
BEGIN
IF DAY(current_date)=30
BEGIN
Update milking
SET Day26=@_lMilking_Capacity
END
ELSE
BEGIN
IF DAY(current_date)=30
BEGIN
INSERT INTO milking (Animal_Id,MonthYear, Day26) VALUES (@_lAnimal_Idint, @_lMonth_Year,@_lMilking_Capacity)
END
END
END
FETCH Table1_CUR INTO @_lMilking_Capacity,@_lAnimal_Idint
END
CLOSE Table1_CUR;
END
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++ ERROR DISPALYED ARE ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++ 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 '@_lAnimal_Idint INT' at line 3 (0 ms taken) 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 'DECLARE @_lIsMilking INTEGER DEFAULT 0' at line 1 (0 ms taken) 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 'DECLARE @_lMilking_Capacity VARCHAR(50) DEFAULT ""' at line 1 (0 ms taken) 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 'DECLARE @_lMonth_Year VARCHAR(50) DEFAULT ""' at line 1 (0 ms taken) 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 'DECLARE @_lCount INTEGER DEFAULT 0' at line 1 (0 ms taken) 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 'DECLARE @_lAnimal_Id INTEGER DEFAULT 0' at line 1 (0 ms taken) 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 'DECLARE Table1_CUR CURSOR FOR SELECT Milk_Capacity,Animal_Id FROM animaldetails ' at line 1 (0 ms taken) 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 'OPEN Table1_CUR' at line 1 (0 ms taken) 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 'FETCH Table1_CUR INTO @_lMilking_Capacity,@_lAnimal_Idint' at line 1 (0 ms taken) 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 'SET @_lMonth_Year= SELECT CONCAT(MONTH(current_date) ,' ', YEAR(current_date))' at line 2 (0 ms taken) 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 'Select COUNT(*) FROM milking WHERE Animal_Id=@_lAnimal_Idint AND MonthYear=@_lMo' at line 1 (0 ms taken) 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 'IF @_lCount>0 BEGIN IF (DAY(current_date)='26') BEGIN Update milking' at line 1 (0 ms taken) |
|
#2
|
|||
|
|||
|
Many of your errors are syntax errors because you're using @ in the names when you DECLARE them. You should not prefix the variables within the trigger, as the '@' is reserved for user-defined variables, which is something different.
http://dev.mysql.com/doc/refman/5.0...-variables.html |
|
#3
|
|||
|
|||
|
Hi Issue is solved, thanks
thanks ccalender
Code:
DELIMITER $$ DROP TRIGGER `amruthdhara`.`milking_morning_trg`$$ create trigger `amruthdhara`.`milking_morning_trg` BEFORE UPDATE on `amruthdhara`.`morningmilkingevent` for each row Begin DECLARE done INT DEFAULT 0; Declare Animal_Id_DEC Integer; Declare Is_Milking_DEC text; Declare Milk_Capacity_DEC text; DECLARE Table1_CUR CURSOR FOR SELECT Milk_Capacity, Animal_Id FROM animaldetails WHERE Is_Milking= 'Yes'; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1; OPEN Table1_CUR; REPEAT FETCH Table1_CUR INTO Milk_Capacity_DEC, Animal_Id_DEC; IF NOT done THEN Set @MonthYear = (SELECT CONCAT(MONTH(current_date) ,' ', YEAR(current_date))); Set @CountDec= (Select Count(*) FROM milking WHERE Animal_Id=Animal_Id_DEC AND MonthYear=@MonthYear And Timing = 'Morning'); if @CountDec > 0 then if Day(current_date) = 1 then Update milking Set Day1 = Milk_Capacity_DEC WHERE Animal_Id=Animal_Id_DEC AND MonthYear=@MonthYear And Timing = 'Morning'; end if; if Day(current_date) = 2 then Update milking Set Day2 = Milk_Capacity_DEC WHERE Animal_Id=Animal_Id_DEC AND MonthYear=@MonthYear And Timing = 'Morning'; end if; if Day(current_date) = 3 then Update milking Set Day3 = Milk_Capacity_DEC WHERE Animal_Id=Animal_Id_DEC AND MonthYear=@MonthYear And Timing = 'Morning'; end if; if Day(current_date) = 4 then Update milking Set Day4 = Milk_Capacity_DEC WHERE Animal_Id=Animal_Id_DEC AND MonthYear=@MonthYear And Timing = 'Morning'; end if; if Day(current_date) = 5 then Update milking Set Day5 = Milk_Capacity_DEC WHERE Animal_Id=Animal_Id_DEC AND MonthYear=@MonthYear And Timing = 'Morning'; end if; if Day(current_date) = 6 then Update milking Set Day6 = Milk_Capacity_DEC WHERE Animal_Id=Animal_Id_DEC AND MonthYear=@MonthYear And Timing = 'Morning'; end if; if Day(current_date) = 7 then Update milking Set Day7 = Milk_Capacity_DEC WHERE Animal_Id=Animal_Id_DEC AND MonthYear=@MonthYear And Timing = 'Morning'; end if; if Day(current_date) = 8 then Update milking Set Day8 = Milk_Capacity_DEC WHERE Animal_Id=Animal_Id_DEC AND MonthYear=@MonthYear And Timing = 'Morning'; end if; if Day(current_date) = 9 then Update milking Set Day9 = Milk_Capacity_DEC WHERE Animal_Id=Animal_Id_DEC AND MonthYear=@MonthYear And Timing = 'Morning'; end if; if Day(current_date) = 10 then Update milking Set Day10 = Milk_Capacity_DEC WHERE Animal_Id=Animal_Id_DEC AND MonthYear=@MonthYear And Timing = 'Morning'; end if; if Day(current_date) = 11 then Update milking Set Day11 = Milk_Capacity_DEC WHERE Animal_Id=Animal_Id_DEC AND MonthYear=@MonthYear And Timing = 'Morning'; end if; if Day(current_date) = 12 then Update milking Set Day12 = Milk_Capacity_DEC WHERE Animal_Id=Animal_Id_DEC AND MonthYear=@MonthYear And Timing = 'Morning'; end if; if Day(current_date) = 13 then Update milking Set Day13 = Milk_Capacity_DEC WHERE Animal_Id=Animal_Id_DEC AND MonthYear=@MonthYear And Timing = 'Morning'; end if; if Day(current_date) = 14 then Update milking Set Day14 = Milk_Capacity_DEC WHERE Animal_Id=Animal_Id_DEC AND MonthYear=@MonthYear And Timing = 'Morning'; end if; if Day(current_date) = 15 then Update milking Set Day15 = Milk_Capacity_DEC WHERE Animal_Id=Animal_Id_DEC AND MonthYear=@MonthYear And Timing = 'Morning'; end if; if Day(current_date) = 16 then Update milking Set Day16 = Milk_Capacity_DEC WHERE Animal_Id=Animal_Id_DEC AND MonthYear=@MonthYear And Timing = 'Morning'; end if; if Day(current_date) = 17 then Update milking Set Day17 = Milk_Capacity_DEC WHERE Animal_Id=Animal_Id_DEC AND MonthYear=@MonthYear And Timing = 'Morning'; end if; if Day(current_date) = 18 then Update milking Set Day18 = Milk_Capacity_DEC WHERE Animal_Id=Animal_Id_DEC AND MonthYear=@MonthYear And Timing = 'Morning'; end if; if Day(current_date) = 19 then Update milking Set Day19 = Milk_Capacity_DEC WHERE Animal_Id=Animal_Id_DEC AND MonthYear=@MonthYear And Timing = 'Morning'; end if; if Day(current_date) = 20 then Update milking Set Day20 = Milk_Capacity_DEC WHERE Animal_Id=Animal_Id_DEC AND MonthYear=@MonthYear And Timing = 'Morning'; end if; if Day(current_date) = 21 then Update milking Set Day21 = Milk_Capacity_DEC WHERE Animal_Id=Animal_Id_DEC AND MonthYear=@MonthYear And Timing = 'Morning'; end if; if Day(current_date) = 22 then Update milking Set Day22 = Milk_Capacity_DEC WHERE Animal_Id=Animal_Id_DEC AND MonthYear=@MonthYear And Timing = 'Morning'; end if; if Day(current_date) = 23 then Update milking Set Day23 = Milk_Capacity_DEC WHERE Animal_Id=Animal_Id_DEC AND MonthYear=@MonthYear And Timing = 'Morning'; end if; if Day(current_date) = 24 then Update milking Set Day24 = Milk_Capacity_DEC WHERE Animal_Id=Animal_Id_DEC AND MonthYear=@MonthYear And Timing = 'Morning'; end if; if Day(current_date) = 25 then Update milking Set Day25 = Milk_Capacity_DEC WHERE Animal_Id=Animal_Id_DEC AND MonthYear=@MonthYear And Timing = 'Morning'; end if; if Day(current_date) = 26 then Update milking Set Day26 = Milk_Capacity_DEC WHERE Animal_Id=Animal_Id_DEC AND MonthYear=@MonthYear And Timing = 'Morning'; end if; if Day(current_date) = 27 then Update milking Set Day27 = Milk_Capacity_DEC WHERE Animal_Id=Animal_Id_DEC AND MonthYear=@MonthYear And Timing = 'Morning'; end if; if Day(current_date) = 28 then Update milking Set Day28 = Milk_Capacity_DEC WHERE Animal_Id=Animal_Id_DEC AND MonthYear=@MonthYear And Timing = 'Morning'; end if; if Day(current_date) = 29 then Update milking Set Day29 = Milk_Capacity_DEC WHERE Animal_Id=Animal_Id_DEC AND MonthYear=@MonthYear And Timing = 'Morning'; end if; if Day(current_date) = 30 then Update milking Set Day30 = Milk_Capacity_DEC WHERE Animal_Id=Animal_Id_DEC AND MonthYear=@MonthYear And Timing = 'Morning'; end if; if Day(current_date) = 31 then Update milking Set Day31 = Milk_Capacity_DEC WHERE Animal_Id=Animal_Id_DEC AND MonthYear=@MonthYear And Timing = 'Morning'; end if; ELSE if Day(current_date) = 1 then Insert into milking (Animal_ID, MonthYear, Timing, Day1) Values (Animal_Id_DEC, @MonthYear, 'Morning', Milk_Capacity_DEC); end if; if Day(current_date) = 2 then Insert into milking (Animal_ID, MonthYear, Timing, Day2) Values (Animal_Id_DEC, @MonthYear, 'Morning', Milk_Capacity_DEC); end if; if Day(current_date) = 3 then Insert into milking (Animal_ID, MonthYear, Timing, Day3) Values (Animal_Id_DEC, @MonthYear, 'Morning', Milk_Capacity_DEC); end if; if Day(current_date) = 4 then Insert into milking (Animal_ID, MonthYear, Timing, Day4) Values (Animal_Id_DEC, @MonthYear, 'Morning', Milk_Capacity_DEC); end if; if Day(current_date) = 5 then Insert into milking (Animal_ID, MonthYear, Timing, Day5) Values (Animal_Id_DEC, @MonthYear, 'Morning', Milk_Capacity_DEC); end if; if Day(current_date) = 6 then Insert into milking (Animal_ID, MonthYear, Timing, Day6) Values (Animal_Id_DEC, @MonthYear, 'Morning', Milk_Capacity_DEC); end if; if Day(current_date) = 7 then Insert into milking (Animal_ID, MonthYear, Timing, Day7) Values (Animal_Id_DEC, @MonthYear, 'Morning', Milk_Capacity_DEC); end if; if Day(current_date) = 8 then Insert into milking (Animal_ID, MonthYear, Timing, Day8) Values (Animal_Id_DEC, @MonthYear, 'Morning', Milk_Capacity_DEC); end if; if Day(current_date) = 9 then Insert into milking (Animal_ID, MonthYear, Timing, Day9) Values (Animal_Id_DEC, @MonthYear, 'Morning', Milk_Capacity_DEC); end if; if Day(current_date) = 10 then Insert into milking (Animal_ID, MonthYear, Timing, Day10) Values (Animal_Id_DEC, @MonthYear, 'Morning', Milk_Capacity_DEC); end if; if Day(current_date) = 11 then Insert into milking (Animal_ID, MonthYear, Timing, Day11) Values (Animal_Id_DEC, @MonthYear, 'Morning', Milk_Capacity_DEC); end if; if Day(current_date) = 12 then Insert into milking (Animal_ID, MonthYear, Timing, Day12) Values (Animal_Id_DEC, @MonthYear, 'Morning', Milk_Capacity_DEC); end if; if Day(current_date) = 13 then Insert into milking (Animal_ID, MonthYear, Timing, Day13) Values (Animal_Id_DEC, @MonthYear, 'Morning', Milk_Capacity_DEC); end if; if Day(current_date) = 14 then Insert into milking (Animal_ID, MonthYear, Timing, Day14) Values (Animal_Id_DEC, @MonthYear, 'Morning', Milk_Capacity_DEC); end if; if Day(current_date) = 15 then Insert into milking (Animal_ID, MonthYear, Timing, Day15) Values (Animal_Id_DEC, @MonthYear, 'Morning', Milk_Capacity_DEC); end if; if Day(current_date) = 16 then Insert into milking (Animal_ID, MonthYear, Timing, Day16) Values (Animal_Id_DEC, @MonthYear, 'Morning', Milk_Capacity_DEC); end if; if Day(current_date) = 17 then Insert into milking (Animal_ID, MonthYear, Timing, Day17) Values (Animal_Id_DEC, @MonthYear, 'Morning', Milk_Capacity_DEC); end if; if Day(current_date) = 18 then Insert into milking (Animal_ID, MonthYear, Timing, Day18) Values (Animal_Id_DEC, @MonthYear, 'Morning', Milk_Capacity_DEC); end if; if Day(current_date) = 19 then Insert into milking (Animal_ID, MonthYear, Timing, Day19) Values (Animal_Id_DEC, @MonthYear, 'Morning', Milk_Capacity_DEC); end if; if Day(current_date) = 20 then Insert into milking (Animal_ID, MonthYear, Timing, Day20) Values (Animal_Id_DEC, @MonthYear, 'Morning', Milk_Capacity_DEC); end if; if Day(current_date) = 21 then Insert into milking (Animal_ID, MonthYear, Timing, Day21) Values (Animal_Id_DEC, @MonthYear, 'Morning', Milk_Capacity_DEC); end if; if Day(current_date) = 22 then Insert into milking (Animal_ID, MonthYear, Timing, Day22) Values (Animal_Id_DEC, @MonthYear, 'Morning', Milk_Capacity_DEC); end if; if Day(current_date) = 23 then Insert into milking (Animal_ID, MonthYear, Timing, Day23) Values (Animal_Id_DEC, @MonthYear, 'Morning', Milk_Capacity_DEC); end if; if Day(current_date) = 24 then Insert into milking (Animal_ID, MonthYear, Timing, Day24) Values (Animal_Id_DEC, @MonthYear, 'Morning', Milk_Capacity_DEC); end if; if Day(current_date) = 25 then Insert into milking (Animal_ID, MonthYear, Timing, Day25) Values (Animal_Id_DEC, @MonthYear, 'Morning', Milk_Capacity_DEC); end if; if Day(current_date) = 26 then Insert into milking (Animal_ID, MonthYear, Timing, Day26) Values (Animal_Id_DEC, @MonthYear, 'Morning', Milk_Capacity_DEC); end if; if Day(current_date) = 27 then Insert into milking (Animal_ID, MonthYear, Timing, Day27) Values (Animal_Id_DEC, @MonthYear, 'Morning', Milk_Capacity_DEC); end if; if Day(current_date) = 28 then Insert into milking (Animal_ID, MonthYear, Timing, Day28) Values (Animal_Id_DEC, @MonthYear, 'Morning', Milk_Capacity_DEC); end if; if Day(current_date) = 29 then Insert into milking (Animal_ID, MonthYear, Timing, Day29) Values (Animal_Id_DEC, @MonthYear, 'Morning', Milk_Capacity_DEC); end if; if Day(current_date) = 30 then Insert into milking (Animal_ID, MonthYear, Timing, Day30) Values (Animal_Id_DEC, @MonthYear, 'Morning', Milk_Capacity_DEC); end if; if Day(current_date) = 31 then Insert into milking (Animal_ID, MonthYear, Timing, Day31) Values (Animal_Id_DEC, @MonthYear, 'Morning', Milk_Capacity_DEC); end if; End if; End If; UNTIL done END REPEAT; CLOSE Table1_CUR; End; $$ DELIMITER ; ![]() |
| Viewing: Dev Shed Forums > Databases > MySQL Help > Trigger Error 1064 |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|
|
|
|