4

まだ存在しない場合にのみ、SQL テーブルを動的に作成しようとしています。インターネットで多くのソリューションを見てきましたが、最も一般的なソリューションを見つけようとしている間、それらは通常特定のデータベースに依存しています。

私は常に CREATE コマンドを実行し、失敗した場合はテーブルが存在し、データの挿入を開始できると想定していました。この推論に欠陥は見当たりませんが (パフォーマンスの問題は考慮していません)、間違っている可能性があります。

これは受け入れられる方法ですか?

データベースに依存しない、またはすべての RDBMS が受け入れる ANSI SQL を使用する他の方法を提案できますか?

4

3 に答える 3

0

INFORMATION_SCHEMAはANSISQL規格の一部であるため、次のことができるはずです。

IF NOT EXISTS(SELECT NULL FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'YourTable')
    CREATE TABLE...
于 2011-05-27T16:06:19.220 に答える
0

テーブルがある場合-たとえば-EMPは、それがあなたが期待しているのと同じEMPであることを本当に意味しますか?

テーブル構造の適切なデータ ディクショナリにクエリを実行するか、大量のエラー チェックと条件付きロジックをコードに入力します...

于 2011-05-27T16:02:28.787 に答える
-1

どうですか:

create table if not exists

于 2011-05-27T16:02:28.973 に答える