Framework: Nilai DEFAULT dalam migrasi tabel tidak dapat dieksekusi jika itu adalah fungsi

Dibuat pada 22 Nov 2015  ·  3Komentar  ·  Sumber: laravel/framework

Ketika saya menentukan nama fungsi sebagai default kolom tabel, ini dibungkus dengan tanda kutip sehingga ketika dijalankan fungsi tidak dijalankan, disimpan sebagai string.

Ini memberikan kesalahan untungnya karena UUID col tidak dapat memiliki nilai string default jenis ini.

Schema::create('products', function(Blueprint $table)
        {
            $table->uuid('id')->default('gen_random_uuid()')->primary('products_pkey');
            $table->string('name')->nullable();
            $table->string('max_projects')->nullable();
            $table->timestamps();
            $table->softDeletes();
        });

Komentar yang paling membantu

Coba dengan DB::raw :

 $table->uuid('id')->default(DB::raw('gen_random_uuid()'))->primary('products_pkey');

Semua 3 komentar

Coba dengan DB::raw :

 $table->uuid('id')->default(DB::raw('gen_random_uuid()'))->primary('products_pkey');

Anda tidak dapat menggunakan fungsi sebagai nilai default di MySQL. Itu harus konstan. Untuk menghasilkan UUID, Anda harus menggunakan pemicu atau melakukannya secara manual.

gen_random_uuid() adalah fungsi Postgre.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

Anahkiasen picture Anahkiasen  ·  3Komentar

RachelScodes picture RachelScodes  ·  3Komentar

ghost picture ghost  ·  3Komentar

kerbylav picture kerbylav  ·  3Komentar

JamborJan picture JamborJan  ·  3Komentar