MySQL trigger before insert, numery faktur

Rozwiązanie proste, ale wymagał jednej zmiany w konfiguracji my.cnf, dokładniej thread_stack bo wartość 64K to deko mało. Całość bazuje na założeniu, że numer faktury to ROK/NUMER, gdzie numer jest autoinkrementowaną wartością.

Tablica t_faktury, w której numer faktury jest reprezentowany za pomocą pola fvat_no trigger dla niej i procedura poniżej:

DROP TRIGGER IF EXISTS fvat_number;
DROP PROCEDURE IF EXISTS generuj_fvatno;  

DELIMITER $$

CREATE PROCEDURE  generuj_fvatno(OUT numerek VARCHAR(30))
BEGIN
  SELECT
    CONCAT(DATE_FORMAT(CURDATE(), '%Y'),'/',COUNT(fvat_no) + 1) INTO numerek
  FROM t_faktury
  WHERE
    SUBSTRING_INDEX(fvat_no, '/', 1) = DATE_FORMAT(CURDATE(), '%Y')
  LIMIT 1 ;
END$$


CREATE TRIGGER fvat_number BEFORE INSERT ON t_faktury
FOR EACH ROW BEGIN
  CALL generuj_fvatno(@OUT);
  IF @OUT = NULL THEN
    SET NEW.fvat_no = CONCAT(DATE_FORMAT(CURDATE(), '%Y'),'/', 1);
  ELSE
    SET NEW.fvat_no =  @OUT;
  END IF;
END$$