首页 > 解决方案 > laravel 在迁移中设置 postgresql 标识列

问题描述

laravel$table->id()将设置默认值nextval('tablename_id_seq'::regclass)

如何设置GENERATED BY DEFAULT AS IDENTITY

CREATE TABLE color (
    color_id INT GENERATED BY DEFAULT AS IDENTITY,
    color_name VARCHAR NOT NULL
);

标签: laravelpostgresqlmigration

解决方案


引用当前文档中有关迁移的索引修饰符表:

->generatedAs($expression) 使用指定的序列选项 (PostgreSQL) 创建一个标识列。

以下代码

Schema::create('color', function (Blueprint $table) {
    $table->mediumInteger('color_id')->generatedAs();
    $table->string('color_name');
});

生成

create table "color" (
  "color_id" integer generated by default as identity not null,
  "color_name" varchar(255) not null
)

如果在and->nullable()之间添加,则 color_id 列是:mediumInteger('color_id')generatedAs()

"color_id" integer generated by default as identity null

推荐阅读