-2

テーブルが存在するかどうかを確認するために、この単純な mysql ステートメントを記述しようとしています。

IF object_id('carpool'.'users', 'U') is not null THEN
    PRINT 'Present!'
ELSE
    PRINT 'Not accounted for'
END IF

'carpool' は私のスキーマで、'users' はテーブルです SQL のバージョンは 5.1.52-community です このエラーが発生し続けます:

Error Code: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF' at line 1   0.000 sec

IF BEGIN END ELSE BEGIN END などのいくつかの構文を試しましたが、役に立ちませんでした。何か案は?

4

3 に答える 3

1

あなたが求めているものに応じて、次のようなものを使用したいかもしれません:

SELECT
  CASE WHEN EXISTS (SELECT NULL
                    FROM information_schema.tables 
                    WHERE table_schema = 'carpool' AND table_name = 'users')
       THEN 'Present'
       ELSE 'Not accounted for' END;

これにより、テーブルがスキーマusersに存在するかどうかがチェックされます。こちらcarpoolの例をご覧ください。

于 2013-05-12T09:01:35.260 に答える
-2

すべてのステートメントはセミコロンで終了する必要があります。

このような

IF object_id('carpool'.'users', 'U') is not null THEN
   PRINT 'Present!';
ELSE
   PRINT 'Not accounted for';
END IF;
于 2013-05-12T08:55:16.430 に答える