1

mysql 5.1 でテーブルを作成しているときに、電話番号を整数として指定するとエラーが発生します。

エラーは「範囲外の値」です。

数値を varchar として指定できることはわかっています。知りたいのは、彼らの他の方法ですか?

create table emp(
    ename varchar(20), 
    ecity varchar(10),
    salary double,
    enumber integer,
    eaddress varchar(40),
    depttname varchar(25)
);

入れる:

insert into emp 
values('priya','delhi',40000,9958465876,'b-64 janak puri new delhi','manager');

エラー 1264 (22003): 行 1 の列 'enum' の値が範囲外です

4

4 に答える 4

2

電話番号は、数字を文字列として保存しないというルールの数少ない例外の 1 つです。それの訳は:

  • 多くの場合、数値表現はフィールドに格納できるものよりも大きくなります。
  • 一部の電話番号には、削除してはならない先頭のゼロが含まれています。たとえば、次のようになります。0014255550177
  • 次のような電話番号で数字以外の文字を保存する必要がある場合があります+

特定の電話番号に一致するレコードを検索するようなことをしたい場合は、電話番号が一貫した形式で保存されるように、フィールドでの入力の検証に十分注意してください。

ie: 780-555-1234, 780 555-1234,780.555.1234はすべて余分な文字を削除し、 として保存する必要があります7805551234

于 2013-09-25T20:13:01.163 に答える
2

varchar電話番号を保存するために使用することができます。ただし、それを取る特定の理由がある場合はBIGINT、現在 int の範囲の問題に直面しているため、最大で使用できます4294967295

于 2013-09-25T20:01:44.643 に答える