Полагаю, что я работаю с этими структурами управления MySQL (см. Ниже) абсолютно неверным образом.Возможно, проблема в запросе MySQL, но я не уверен ...
Ошибка MySQL: у вас ошибка в синтаксисе SQL;проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы узнать правильный синтаксис для использования рядом с 'IF @records> 1000 THEN SELECT @actRecords: = COUNT (id) FROM sys_proc_err
WHERE' в строке 1
#include <mysql.h>
// other includes, declarations for mysql... etc.
int main() {
mysql_init(&mysql);
mysql_real_connect(&mysql,DB_SERVER,DB_USER,DB_PASSWORD,DB_DB_IN,0,0,CLIENT_MULTI_STATEMENTS);
// Now: DELETE ERROR RECORDS older than 3 days if there is more than 1 000 records, leave 1 000 newest records
mysql_query(connection, "SELECT @records:=COUNT(`id`) FROM `sys_proc_err`;
IF @records > 1000 THEN SELECT @actRecords:=COUNT(`id`) FROM `sys_proc_err` WHERE time > (NOW()-259200);
END IF;
IF @actRecords > 1000 THEN DELETE FROM `sys_proc_err` WHERE `time` < (NOW()-259200);
ELSE DELETE FROM `sys_proc_err` ORDER BY `id` ASC LIMIT @actRecords-1,@records-@actRecords;
END IF;");
return 0;
}
Результат для SELECT @records:=COUNT(id) FROM sys_proc_err
равен 1267.
Результат для SELECT @actRecords:=COUNT(id) FROM sys_proc_err WHERE time > (NOW()-259200)
равен 6.