MySQLのテーブルでcust_faxを次のようにSET
実行すると、次のようになります。
cust_fax integer(10) NOT NULL,
次に、次のような値を挿入します。
INSERT INTO database values ('3172978990');
しかしそれからそれは言う
`エラー1264`が列の値を超えています
そして、私はエラーがどこにあるのか知りたいですか?私のセット?または他?
どんな答えでも大歓迎です!
値 3172978990 は 2147483647 (の最大値) より大きいINT
ため、エラーになります。MySQL の整数型とその範囲は、こちらに一覧表示されています。
(10)
また、 inINT(10)
は整数の「サイズ」を定義しないことに注意してください。列の表示幅を指定します。この情報は参考情報です。
エラーを修正するには、データ型を に変更しますVARCHAR
。電話番号と FAX 番号は文字列として保存する必要があります。このディスカッションを参照してください。
intデータ型の長さを超えています。UNSIGNED属性を使用してその値をサポートできます。
SIGNED INTは2147483647までサポートでき、UNSIGNED INTを使用するとこれよりも 2 倍になります。この後も、長さ 10 のCHARまたはVARCHARを使用するよりもデータを保存したい
AUTO_INCREMENT
範囲外でないことを確認してください。その場合、次のように新しい値を設定します。
ALTER TABLE table_name AUTO_INCREMENT=100 -- Change 100 to the desired number
AUTO_INCREMENT
データ型で許可されている最大値より大きい数値を含めることができます。これは、後で空にしたテーブルをいっぱいにしAUTO_INCREMENT
て同じままにした場合に発生する可能性がありますが、別の理由もある可能性があります. この場合、新しいエントリの ID は範囲外になります。
これが問題の原因である場合はAUTO_INCREMENT
、最新の行の ID よりも 1 大きい値に設定することで修正できます。したがって、最新の行の ID が 100 の場合:
ALTER TABLE table_name AUTO_INCREMENT=101
AUTO_INCREMENT
の現在の値を確認するには、次のコマンドを使用します。
SELECT `AUTO_INCREMENT`
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'DatabaseName'
AND TABLE_NAME = 'TableName';
と連携:
ALTER TABLE `table` CHANGE `cust_fax` `cust_fax` VARCHAR(60) NULL DEFAULT NULL;