フロート列を持つテーブルを作成したい。
$table->float('TaxRate',5,5)->default(0.00000);
しかし、Mysql はこれを DOUBLE と見なします。
これはどのように機能しますか?
フロート列を持つテーブルを作成したい。
$table->float('TaxRate',5,5)->default(0.00000);
しかし、Mysql はこれを DOUBLE と見なします。
これはどのように機能しますか?
にIlluminate\Database\Schema\Grammars\MySqlGrammar
変換float
されるからdouble
です。彼らがそれを使用するように強制する理由はわかりませんdouble
。
より多くのクラスをオーバーライドする必要があるため、 をオーバーライドするのMySqlGrammar
は面倒です。
生のmysqlクエリを使用して、以下のようなテーブルを作成できます
public function up() {
DB::unprepared('CREATE TABLE `temp`(
`id` INT NOT NULL AUTO_INCREMENT,
`tax_rate` FLOAT(5, 5) NOT NULL DEFAULT 0.00000,
...
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8'
);
}