PHPFixing
  • Privacy Policy
  • TOS
  • Ask Question
  • Contact Us
  • Home
  • PHP
  • Programming
  • SQL Injection
  • Web3.0

Wednesday, April 13, 2022

[FIXED] how to define integer size in laravel migration

 April 13, 2022     laravel, migration, php     No comments   

Issue

When I try database migrations Scheme Builder from Laravel.

When I enter a type integer, auto_increment and primary key are automatically inputed.

I don't know how to get a create table in laravel.

Schema::create('tbl_corona_region', function(Blueprint $table){
            $table->string('seq', 30);
            $table->date('create_dt');
            $table->string('region_nm', 30);
            $table->string('region_cn', 30);
            $table->string('region_en', 30);
            $table->integer('defCnt', 15)->default(0);
            $table->integer('incDec', 15)->default(0);
            $table->integer('deathCnt', 15)->default(0);
            $table->integer('isolIngCnt', 15)->default(0);
            $table->integer('isolClearCnt', 15)->default(0);
            $table->integer('localOccCnt', 15)->default(0);
            $table->integer('overFlowCnt', 15)->default(0);
            $table->integer('qurRate', 15)->default(0);
            $table->dateTime('stdDay');
            $table->dateTime('update_dt');
            $table->primary(['seq', 'create_dt', 'region_nm']);            
        });

Generates this SQL

create table `tbl_corona_region` (
    `seq` varchar(30) not null, 
    `create_dt` date not null, 
    `region_nm` varchar(30) not null, 
    `region_cn` varchar(30) not null, 
    `region_en` varchar(30) not null, 
    `defCnt` int not null default '0' auto_increment primary key, 
    `incDec` int not null default '0' auto_increment primary key, 
    `deathCnt` int not null default '0' auto_increment primary key, 
    `isolIngCnt` int not null default '0' auto_increment primary key, 
    `isolClearCnt` int not null default '0' auto_increment primary key, 
    `localOccCnt` int not null default '0' auto_increment primary key, 
    `overFlowCnt` int not null default '0' auto_increment primary key, 
    `qurRate` int not null default '0' auto_increment primary key, 
    `stdDay` datetime not null, 
    `update_dt` datetime not null
) default character set utf8mb4 collate 'utf8mb4_unicode_ci')

Solution

The second parameter in integer is autoincrement not length.

In the laravel database migration, the integer type cannot be specified in length. It takes 11 as default.

The second parameter of the integer method is not the specified length. Instead, the auto increment is set, so the integer method cannot specify the length of the sub-segment.

integer(string $column, bool $autoIncrement = false, bool $unsigned =false)

Reference : Laravel core implementation of integer method



Answered By - Dhairya Lakhera
Answer Checked By - Marilyn (PHPFixing Volunteer)
  • Share This:  
  •  Facebook
  •  Twitter
  •  Stumble
  •  Digg
Newer Post Older Post Home

0 Comments:

Post a Comment

Note: Only a member of this blog may post a comment.

Total Pageviews

Featured Post

Why Learn PHP Programming

Why Learn PHP Programming A widely-used open source scripting language PHP is one of the most popular programming languages in the world. It...

Subscribe To

Posts
Atom
Posts
Comments
Atom
Comments

Copyright © PHPFixing