0

検索した結果、decimal(m,n) の最初の桁 m が合計桁数であることを知らない人がいる範囲外の問題がたくさん見つかりました。しかし、それは私の問題ではありません。

問題の列については、次のものがあります。

Field | Type                   | Null | Key | Default | Extra
preco | decimal(50,2) unsigned | NO   |     | 0.00    |

設定 decimal(50,2) は、私が本当に望んでいる、または必要としている以上のものです。私は本当に合計10桁だけが欲しいです。それは価格なので、1 億を超えるものはおそらくばかげているので、おそらく decimal(10,2) の方が適切でしょう。ただし、MySQL は次のクエリを受け付けていません。

INSERT INTO `produto` (`tipo_id`, `preco`, `qtd`, `opcao1`) VALUES (110, '77888555.43', '10', 'Azul')

CodeIgniter、phpMyAdmin、および MySQL コマンド ライン クライアントで直接クエリを実行しました。10 進数の値を引用符なしで試してみましたが、常に同じエラーが発生します。

「行 2 の列 'preco' の値が範囲外です」

4

2 に答える 2

2

precoの値を、数値と同じように MySQL で受け入れられる文字列として送信しています。

于 2012-08-29T18:47:55.863 に答える
1

SQLyogで試してみましたが、完璧に機能しています。テーブルデータタブとクエリを使用して、 SQLyogの両方の方法を直接変更しようとしました。それはちょうど働いています。Decimal Range には問題がないようですが、問題は他の場所にあります。添付のスクリーンショットを参照してください

テーブルデータタブから直接 テーブルデータタブから直接

挿入クエリを介して 挿入クエリを介して

テーブル構造ここに画像の説明を入力

それが役立つことを願っています...

于 2012-08-29T19:15:21.010 に答える