0

MySQL で「DESCRIBE テーブル」構文を使用すると、フィールドとそのデフォルト値を含むテーブルに関する情報が返されます。

http://dev.mysql.com/doc/refman/5.0/en/describe.html

しかし、空の文字列のデフォルト値を持つフィールドと、デフォルト値をまったく持たないフィールドの違いをどのように見分けるのでしょうか?

どちらの場合も、DESCRIBE table ステートメントの出力で「デフォルト」列に空の値を返すようです。

古いテーブル形式と新しいテーブル形式の違いを簡単に検出するには、PHP を使用してデータを解析できる必要があります。

4

3 に答える 3

1

アプリケーションで簡単にクエリ可能なスキーマ情報が必要な場合は、MySQLINFORMATION_SCHEMAデータベースを使用することをお勧めします。データベースは、あなたの場合のニーズを満たすクエリ可能なメタデータ テーブルを提供します。おそらくCOLUMNSテーブルに興味があるでしょう。次のようにクエリできます。

SELECT * FROM COLUMNS WHERE `TABLE_NAME` = 'your_table' AND `TABLE_SCHEMA` = 'your_database'

もちろん、アプリケーションに関連付けられたデータベース ユーザーのアクセス権限を制限することを考慮する必要があります。INFORMATION_SCHEMAこれは、実行中の他のアプリケーションがある場合に全体を表示したくない場合があるためです (ただし、このユーザーは、他のデータベースに関する情報を明らかに見ることができます)。COLUMNSテーブル)。

于 2012-12-27T18:53:57.427 に答える
1

次のことを試してください。

Show create table tablename
于 2012-12-27T18:52:15.720 に答える
0

デフォルト値が存在しない場合、MySQLは値を「NULL」として報告するようです。これは、フィールドが「NOT NULL」に設定されている場合、デフォルト値がNULLであると想定できることを意味します。これは、デフォルト値が空であるか、そのフィールドタイプのMySQLデフォルト値に設定されていることを意味します。

于 2012-12-27T19:21:53.833 に答える