簡體   English   中英

Laravel integer 值 DB 記錄列的最大值限制

[英]Max value limit for Laravel integer value DB record column

如果可能的話,我將如何在我的數據庫中創建一個具有最大限制的 integer 列。

例子:

  • 讓我們稱列X
  • 假設最大限制是“30”
  • 如果 X 設置為 12,那么這是一個有效值。
  • 如果 X 設置為 31,那么這是一個無效值。

我想在數據庫層而不是在我的應用程序層中執行此操作。

那么我會在我的數據庫遷移文件中放入什么?

遷移文件示例:

class CreateUsersTable extends Migration
{
    public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->rememberToken();
            $table->timestamps();
        });
    }

    public function down()
    {
        Schema::dropIfExists('users');
    }
}

列值限制可以通過檢查約束來完成

藍圖不支持。

您需要運行原始 sql 查詢

public function up()
{
    // table creation
    DB::statement('
        ALTER TABLE users 
        ADD CONSTRAINT users_x_check CHECK (x > 0 AND x <= 30)
    ');
}

SQL 限制數據庫中的最小值和最大值,不知道 laravel 是否支持檢查約束。 但是您可以手動創建表格。 - @DefinitelynotRafal

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM