2011-10-28 20 views
1

ここではデータベーステーブルの列を作成するときに問題が発生します。これらのそれぞれについて、その長さを持つデータ型があります。例えばのためにしかし、これはまだ同じ量をとり、明らかに私はデータ型の長さを指定する

filepath Varchar(100) 

としてこれを指定し、テーブルのいずれかが、ファイルパスであると言う、と私は最大で長さが100よりも長くないことが、このファイルのパスを想定varchar(255)という1バイトのメモリ空間。私は、ファイルパスがvarchar(100)を超えた場合、ファイルパスの値を100に合わせて拒否/トリムダウンしますか?または割り当てられたメモリ空間がまだ約1バイトなので、100を超えることができますか?

本質的に上記の説明は私の疑問に左右されます.1つはテーブルの列の予想される最大長について非常に具体的なものですか?または、それを安全にプレイし、メモリ要件に応じてテーブル列の予想長さの上限を指定しますか?

ありがとうございます!

パリジャット

答えて

1

MySQLは自動的に値を100文字に切り捨てます。 text/charフィールドの角括弧内の数字は最大長です。 CHARACTERの制限であることに注意してください。そのフィールドにマルチバイト照合がある場合は、フィールドに100バイト以上を格納できますが、テキストは100文字分しか格納できません。

これはint(10)とは異なります。ここで、括弧で囲まれた数字は表示用です。 intは内部でint型で、(#)で許可する桁数に関係なく16ビットを使用しますが、を参照してください。#以上の#桁。

+0

MySQLは厳格なモードで動作している場合は**自動的に切り捨てられません。 – michael667

+0

本当ですが、それは通常そうではありません。 –

+0

いつものもので、セットアップに100%依存しないものは何ですか。 MySQL 5のインストールは、デフォルトでstrictモードで実行されます。 – michael667

1

テーブルの列の予想最大長は非常に明確ですか?それとも安全に遊ぶだけですか?

アドレスを含むテーブルを作成する場合は、アドレスの長さに何らかの制限があることは間違いありません。データベースのフィールドを長くすることはできません。

あなたは安全にプレーしてください。非常に注意してください。

関連する問題