web-dev-qa-db-ja.com

整数のスキーマビルダーの長さ

私は周りを探していて、質問は数回尋ねられましたが、誰もそれに対して明確な答えを出すことができないようです。スキーマを使用してテーブル列の整数の長さをどのように指定しますか?

私は誰かが提案しているのを見ました:

_$table->integer('post')->length(11);
_

しかし、それは機能しません-少なくともLaravel 4.2の場合-それでも、列はint(10)として生成されます。

整数の長さを指定するための組み込みメソッドはありますか?

12
Spencer Mark

MySQLを使用している場合、整数列の長さを指定することはできません。 http://dev.mysql.com/doc/refman/5.1/en/integer-types.html で説明されている使用可能な整数型の1つからのみ選択できます。

したがって、Laravelでも整数の長さを設定することはできません。 http://laravel.com/docs/schema#adding-列

17
lowerends

増分IDと一致するように長さ10を指定する必要があると思います(外部キーを宣言する場合)。もしそうなら、あなたは使う必要があります:

$table->unsignedInteger('some_id_reference');
4
omarjebari
2
Grant
$table->bigInteger('variable');
$table->integer('variable');
$table->mediumInteger('variable'); 
$table->smallInteger('variable');
$table->tinyInteger('variable');
$table->unsignedBigInteger('variable');
$table->unsignedMediumInteger('variable'); 
$table->unsignedSmallInteger('variable');  
$table->unsignedTinyInteger('variable');  

https://laravel.com/docs/5.7/migrations

0
Berthold Feujo

はい、次のコマンドを使用してデフォルトの列の長さを変更できます。

$table->string('any_text',35)->change();

次のコマンドを使用してnull可能にすることもできます。

$table->string('any_text',35)->nullable()->change();

それがあなたのためにうまくいくことを願っています:)

0
Zia Khan

Laravel 5:

$table->addColumn('integer', 'post', ['length' => '10']); // Creates INT(10)
$table->addColumn('integer', 'post', ['length' => '10'])->unsigned(); // Creates Unsigned INT(10)
$table->unsignedInteger('post'); // Creates Unsigned INT(10)

$table->integer('post'); // Creates INT(11)
$table->integer('post')->unsigned(); // Creates Unsigned INT(11)
0
LowLevel