0
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で構文エラーが発生します

4

2 に答える 2

3

AFAIK、ルーチン(関数、トリガー、ストアドプロシージャ)でそのようなIFのみを使用できます。

于 2010-06-04T22:14:20.380 に答える
1

ストアドプロシージャを作成します。

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ので、それを変更しました。

于 2010-06-04T22:16:16.867 に答える