3

多数のテーブルと列を含む大規模なデータベースがあり、NULL を許可する列と NULL を許可しない列が混在しています。

最近、メソッドを標準化し、すべての空のフィールドなどに NULL を使用することにしました。したがって、NULL を許可するには、すべてのテーブルにすべての列を設定する必要があります (もちろんプライマリを除く)。

これをループするようにphpコードを作成することはできますが、SQLを介して簡単に実行できる方法があるかどうか疑問に思っていましたか?

よろしく

4

1 に答える 1

0

システム テーブルのメタ データを使用して、テーブル、列、型などを決定できます。次に、それを使用して、UPDATE SQL を含む文字列を動的に作成し、テーブル名と列名を連結します。これが実行されます。

私は最近、OPが列を検索して特定の値を含む列を検索できるようにするソリューションを投稿しました。より完全な回答を提供する代わりに、これはこれにアプローチする方法 (または少なくとも何を調査するか) についての手がかりを与えるはずです。テーブル名を指定するか、それらに結合してから、値ではなく型をチェックすることを除いて、これと同様のことを行う必要があります (そして、構築する動的 SQL は選択ではなく更新を構築します)。

数時間以内に、あなたの特定のシナリオをさらに支援する立場になります...それまでにこれ(または他の回答)でうまくいかない場合は、より完全なものを提供します。

編集:これをmySqlとしてタグ付けしたことに気づきました...私の解決策はMS SQL Server用でした。MySqlでメタデータを照会し、動的に生成されたSQLコマンドを実行できると仮定すると、プリンシパルは同じである必要があります(したがって、この回答は役に立つと思うのでそのままにしておきます)。

SQL Server - 特定の条件を満たす列を選択しますか?

于 2013-03-28T07:44:49.437 に答える