通話記録を blob としてデータベースに保存するトリガーがあります。トリガーで毎回実行され、データベースをいくつかのサイズ制限に保つのに役立ついくつかの追加関数を追加したいと思います:関数はそのようなことをしなければなりません:
BLOB ファイルの合計を計算する必要があります。指定された値よりも大きい間、テーブルから最も古いレコードを削除します。
何が間違っているのかわかりません。ご覧ください
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;
データベースはこんな感じ
-- ----------------------------
-- 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。