【问题标题】:Laravel - Cockroach DB - Auto increment is generating UUIDLaravel - Cockroach DB - 自动增量正在生成 UUID
【发布时间】:2020-03-04 15:55:48
【问题描述】:

我正在使用 Laravel 5.8 和 cockroachDB 创建新的迁移。我正在尝试使用 increments 在 laravel 迁移中生成自动增量列。但它正在生成 UUID 而不是序列。任何有想法的人都可以帮我解决这个问题。请检查我的迁移。

Schema::create('billing_organisations_test1', function (Blueprint $table) {
            $table->increments('id');     //bigIncrements also not working
            $table->string('name');
            $table->timestamps(6);
            $table->softDeletes('deleted_at', 6)->default(null);
        });

Laravel 迁移正在生成以下查询。如何将 id 列默认值设置为自增。

CREATE TABLE billing_organisations_test1 (  
id INT8 NOT NULL DEFAULT unique_rowid(),
    name VARCHAR(255) NOT NULL,
    created_at TIMESTAMP NULL,
    updated_at TIMESTAMP NULL,
    deleted_at TIMESTAMP NULL,
    CONSTRAINT "primary" PRIMARY KEY (id ASC),
    FAMILY "primary" (id, name, created_at, updated_at, deleted_at)
)

【问题讨论】:

  • 为什么要在时间戳和 softDelet 中添加 6 个字符的限制?
  • Cockroach DB 不支持 Timestamp()

标签: laravel auto-increment cockroachdb


【解决方案1】:

您需要将serial_normalization 设置为sql_sequence。请注意,这会降低性能。应用真的需要递增 ID 吗?

见:https://www.cockroachlabs.com/docs/stable/serial.html#modes-of-operation

【讨论】:

    【解决方案2】:

    在你的代码下面试试这个。

    DB::statement("ALTER TABLE table_name AUTO_INCREMENT = 0;");
    

    【讨论】:

      猜你喜欢
      • 2016-10-23
      • 2014-11-30
      • 2017-05-05
      • 2015-12-29
      • 2016-04-05
      • 2022-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多