J'ai un déclencheur pour enregistrer les enregistrements d'appels en tant que blob dans la base de données. Je veux ajouter une fonction supplémentaire qui s'exécutera à chaque fois avec le déclencheur et aidera à maintenir la base de données dans certaines limites de taille: function doit faire quelque chose comme ça:While boucle en utilisant uniquement le langage de requête mysql
Doit calculer la somme des fichiers blob. alors qu'il est plus grand que la valeur donnée, supprimez le plus ancien enregistrement de la table.
Je ne sais pas ce que je fais mal. S'il vous plaît jeter un oeil
WHILE ((select sum(OCTET_LENGTH(recordfile))/1000000 from callrecords)>0,1)
DO
BEGIN
DELETE FROM callrecords ORDER BY id ASC LIMIT 1;
END;
END WHILE;
Voici comment la base de données ressemble
-- ----------------------------
-- Table structure for `callrecords`
-- ----------------------------
CREATE TABLE `callrecords` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`uid` varchar(150) COLLATE utf8_unicode_ci NOT NULL,
`callerid` int(11) NOT NULL,
`extension` int(11) NOT NULL,
`calldate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`recordfile` longblob,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=350 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Thx à l'avance.
Alors, quel happpens? Votre déclencheur fonctionne-t-il? Est-ce qu'il supprime les enregistrements? Avez-vous une erreur? Quelle est l'erreur? – Jocelyn