これがばかげた質問ではないことを願っています。すべての変数のデフォルト値または挿入時の関数を設定できます。しかし、フィールドを挿入する必要がなく、null値を許可しない場合、phpMyAdminに表示される「空白」の値は何ですか?クエリでは、空の文字列などとして返されますか?
それを理解しようとしているだけで、そのレコードの特定の列の値が「空」または空白などにならないように、すべてのレコードをクエリしたいと思います。
ありがとう。
手動 を参照すると、
明示的なDEFAULT句がないNOTNULL列のデータ入力の場合、INSERTまたはREPLACEステートメントに列の値が含まれていないか、UPDATEステートメントが列をNULLに設定すると、MySQLはで有効なSQLモードに従って列を処理します。時間:
- 厳密なSQLモードが有効になっていない場合、MySQLは列を列データ型の暗黙的なデフォルト値に設定します。
- Strictモードが有効になっている場合、トランザクションテーブルでエラーが発生し、ステートメントがロールバックされます。非トランザクションテーブルの場合、
エラーが発生しますが、複数行のステートメントの2番目以降の行でこれが発生した場合、前の行が挿入されています。
それで、あなたの質問は、さまざまな列データ型の暗黙のデフォルト値は何ですか?どうぞ:
暗黙のデフォルトは次のように定義されています。
- AUTO_INCREMENTで宣言された整数型または浮動小数点型を除いて、数値型の場合、デフォルトは0です。
属性。デフォルトはシーケンスの次の値です。- TIMESTAMP以外の日付と時刻のタイプの場合、デフォルトはタイプに適切な「ゼロ」値です。テーブルの最初のTIMESTAMP列の場合、デフォルト値は現在の日付と時刻です。セクション10.3「日付と時刻のタイプ」を参照してください。
- ENUM以外の文字列タイプの場合、デフォルト値は空の文字列です。 ENUMの場合、デフォルトは最初の列挙値です。
ISデフォルト値を指定しない限り(つまり、問題の列に「デフォルト制約」を定義しない限り)ありません。
既存の列にデフォルトを追加する例を次に示します。
ALTER TABLE dbo.customer ALTER COLUMN contactname SET DEFAULT 'Unknown'
デフォルトでテーブルを作成する例を次に示します。
CREATE TABLE Books (
ID SMALLINT NOT NULL,
Name VARCHAR(40) NOT NULL,
PubID SMALLINT NOT NULL DEFAULT 0
)
すべての列を「nullではない」と宣言し、必要に応じてデフォルトの制約を指定することをお勧めします。
上記の「本」の例では、PubIDを指定せずに「挿入」すると、PubIDはゼロになります。
同じ例で、IDまたは名前を指定せずに「挿入」すると...エラーが発生します。
MySQLにIDを自動割り当てさせたい場合は、代わりに次の構文を使用してください。
CREATE TABLE Books (
ID SMALLINT NOT NULL AUTO_INCREMENT,
Name VARCHAR(40) NOT NULL,
PubID SMALLINT NOT NULL DEFAULT 0
)