簡體   English   中英

Oracle數據庫上的Laravel遷移重置/刷新錯誤ORA-01758

[英]Laravel migration reset/refresh error ORA-01758 on Oracle Database

我的Laravel遷移在重置/刷新時不斷出錯:

ORA-01758: table must be empty to add mandatory (NOT NULL)

遷移如下:

public function up()
{
   Schema::table('kasbank', function (Blueprint $table) {
        $table->dropColumn('name_bn');
        $table->dropColumn('id_rekon');
        $table->string('name_kb')->after('kode');
        $table->integer('id_rek')->nullable();
   });
}
    /**
    * Reverse the migrations.
    *
    * @return void
    */
public function down()
{
    Schema::table('kasbank', function (Blueprint $table) {
        $table->dropColumn('id_rek');
        $table->dropColumn('name_kb');
        $table->integer('id_rekon')->nullable();
        $table->string('name_bn')->after('kode');
   });
}

僅供參考, id_rekon列最初在數據庫中id_rekon為空。

我的遷移遺漏了什么?

問題在於您的表不為空,並且當前行將被賦予NULL作為默認值,但是該列不允許為NULL。

您應該可以通過設置默認值來解決它。

從Oracle文檔:

但是,如果提供默認值,則可以將具有NOT NULL約束的列添加到現有表中。 否則,執行ALTER TABLE語句時將引發異常。

嘗試:

$table->integer('id_rek')->default($value)->nullable();

來自: https : //laravel.com/docs/5.5/migrations

暫無
暫無

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

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