SQLでテーブルを削除する前にテーブルが存在するかどうかを確認する必要があります。私はインターネットからいくつかのことを試してきましたが、これは一番うまくいくようですが、うまくいきません。存在するかどうかを確認した後にテーブルから削除する
IF OBJECT_ID('mytable', 'N') IS NOT NULL
BEGIN
DELETE FROM table WHERE user_id= :user_id
END
私はエラーを取得する:
SQLSTATE[42000]: Syntax error or access violation: 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 OBJECT_ID('we_image_gallery', 'U') IS NOT NULL DELETE FROM mytable' at line 1
私は、現在のデータベースを使用して、スクリプトが複数のシステムに移植されたときに、私が上で数えることができるソリューションを必要としています。
編集:このクエリはPHP PDOによって実行されます。存在しない答えが存在するのは、問題を引き起こしているpdoまたはsqlサーバーに設定がある可能性があるということですか?
この種の問題は、悪い設計の徴候です。 – Strawberry
実際には別の疑問が生じます。どのテーブルが作成されたかを格納する余分なテーブルを作成すること(異なる場所に異なるアドオンをインストールすることによって)を作成し、それを使用してテーブルをチェックするか、SQLを使用してテーブルをチェックする現在のシステムステートメント。 – Zaper127
あなたの現在のシステムはひどいですが、あなたの提案された選択肢と同じように悪いです。データベースにどのテーブルが存在するかを知っておく必要があります。推測の問題ではありません。 – Strawberry