SELECT @cnt := COUNT(table_name)
FROM information_schema.tables
WHERE table_schema = 'TAA'
and table_name = 'Clients';
IF (@cnt > 0) THEN
INSERT INTO `ClientsBAK` SELECT * FROM `Clients`;
END IF;
IF(@cnt > 1) THEN
エラー1064で構文エラーが発生します
SELECT @cnt := COUNT(table_name)
FROM information_schema.tables
WHERE table_schema = 'TAA'
and table_name = 'Clients';
IF (@cnt > 0) THEN
INSERT INTO `ClientsBAK` SELECT * FROM `Clients`;
END IF;
IF(@cnt > 1) THEN
エラー1064で構文エラーが発生します
AFAIK、ルーチン(関数、トリガー、ストアドプロシージャ)でそのようなIFのみを使用できます。
ストアドプロシージャを作成します。
DELIMITER //
CREATE PROCEDURE BackupClients()
BEGIN
SELECT @cnt := COUNT(table_name)
FROM information_schema.tables
WHERE table_schema = 'TAA'
AND table_name = 'Clients';
IF @cnt > 0 THEN
INSERT INTO `ClientsBAK` SELECT * FROM `Clients`;
END IF;
END //
DELIMITER ;
CALL BackupClients();
IF @cnt > 0
の代わりにあなたも欲しいと思うIF @cnt > 1
ので、それを変更しました。