欢迎光临
我们一直在努力

Laravel的Schema数据类型与mysql数据库数据类型的对应关系

1、简介

迁移就像数据库的版本控制,允许团队简单轻松的编辑并共享应用的数据库表结构,迁移通常和Laravel 的 schema 构建器结对从而可以很容易地构建应用的数据库表结构。如果你曾经告知小组成员需要手动添加列到本地数据库结构,那么这正是数据库迁移所致力于解决的问题。

Laravel 的 Schema 门面提供了与数据库系统无关的创建和操纵表的支持,在 Laravel 所支持的所有数据库系统中提供一致的、优雅的、平滑的 API。

2、生成迁移

使用 Artisan 命令 make:migration 来创建一个新的迁移:

php artisan make:migration create_users_table

以下是Schema构建器的数据字段类型与数据库的数据类型的对应关系:

Schema 构建器包含一系列你可以用来构建表的列类型:

命令 描述
$table->bigIncrements('id'); 自增ID,类型为bigint
$table->bigInteger('votes'); 等同于数据库中的 BIGINT 类型
$table->binary('data'); 等同于数据库中的 BLOB 类型
$table->boolean('confirmed'); 等同于数据库中的 BOOLEAN 类型
$table->char('name', 4); 等同于数据库中的 CHAR 类型
$table->date('created_at'); 等同于数据库中的 DATE 类型
$table->dateTime('created_at'); 等同于数据库中的 DATETIME 类型
$table->dateTimeTz('created_at'); 等同于数据库中的 DATETIME 类型(带时区)
$table->decimal('amount', 5, 2); 等同于数据库中的 DECIMAL 类型,带一个精度和范围
$table->double('column', 15, 8); 等同于数据库中的 DOUBLE 类型,带精度, 总共15位数字,小数点后8位
$table->enum('choices', ['foo', 'bar']); 等同于数据库中的 ENUM 类型
$table->float('amount'); 等同于数据库中的 FLOAT 类型
$table->increments('id'); 数据库主键自增ID
$table->integer('votes'); 等同于数据库中的 INTEGER 类型
$table->ipAddress('visitor'); 等同于数据库中的 IP 地址
$table->json('options'); 等同于数据库中的 JSON 类型
$table->jsonb('options'); 等同于数据库中的 JSONB 类型
$table->longText('description'); 等同于数据库中的 LONGTEXT 类型
$table->macAddress('device'); 等同于数据库中的 MAC 地址
$table->mediumIncrements('id'); 自增ID,类型为无符号的 mediumint
$table->mediumInteger('numbers'); 等同于数据库中的 MEDIUMINT 类型
$table->mediumText('description'); 等同于数据库中的 MEDIUMTEXT 类型
$table->morphs('taggable'); 添加一个 INTEGER 类型的 taggable_id 列和一个 STRING 类型的 taggable_type
$table->nullableTimestamps(); timestamps() 一样但允许 NULL 值
$table->rememberToken(); 添加一个 remember_token 列: VARCHAR(100) NULL
$table->smallIncrements('id'); 自增ID,类型为无符号的 smallint
$table->smallInteger('votes'); 等同于数据库中的 SMALLINT 类型
$table->softDeletes(); 新增一个 deleted_at 列用于软删除
$table->string('email'); 等同于数据库中的 VARCHAR 列
$table->string('name', 100); 等同于数据库中的 VARCHAR,带一个长度
$table->text('description'); 等同于数据库中的 TEXT 类型
$table->time('sunrise'); 等同于数据库中的 TIME 类型
$table->timeTz('sunrise'); 等同于数据库中的 TIME 类型(带时区)
$table->tinyInteger('numbers'); 等同于数据库中的 TINYINT 类型
$table->timestamp('added_on'); 等同于数据库中的 TIMESTAMP 类型
$table->timestampTz('added_on'); 等同于数据库中的 TIMESTAMP 类型(带时区)
$table->timestamps(); 添加 created_atupdated_at
$table->timestampsTz(); 添加 created_atupdated_at 列(带时区)
$table->unsignedBigInteger('votes'); 等同于数据库中无符号的 BIGINT 类型
$table->unsignedInteger('votes'); 等同于数据库中无符号的 INT 类型
$table->unsignedMediumInteger('votes'); 等同于数据库中无符号的 MEDIUMINT 类型
$table->unsignedSmallInteger('votes'); 等同于数据库中无符号的 SMALLINT 类型
$table->unsignedTinyInteger('votes'); 等同于数据库中无符号的 TINYINT 类型
$table->uuid('id'); 等同于数据库的UUID
赞(0)
版权归原作者所有,如有侵权请告知。达维营-前端网 » Laravel的Schema数据类型与mysql数据库数据类型的对应关系

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址