ไม่สามารถวางคีย์ต่างประเทศลงในตารางที่มีอยู่ได้ใช่ไหม

ฉันกำลังพยายามวางคีย์ต่างประเทศลงในตารางที่มีอยู่โดยใช้การย้ายข้อมูล แต่เกิดข้อผิดพลาดว่า "ข้อผิดพลาดทางไวยากรณ์หรือการละเมิดการเข้าถึง: 1091 ไม่สามารถ DROP Consult_id : ตรวจสอบว่าคอลัมน์/คีย์มีอยู่" คุณช่วยมันหน่อยได้ไหม?


person balamurugan natarajan    schedule 11.11.2019    source แหล่งที่มา
comment
มันจะช่วยคุณ: stackoverflow.com/a/51861737/4934273   -  person Md. Abu Taleb    schedule 11.11.2019
comment
แสดงสคีมาของตารางและโค้ดที่พยายามจะปล่อยคีย์นอก   -  person Styx    schedule 11.11.2019


คำตอบ (2)


ก่อนอื่น คุณต้องยกเลิกข้อจำกัดด้านต่างประเทศ

public function up() {
       Schema::table('table_name', function (Blueprint $table) {
            $table->dropForeign('table_name_consultant_id_foreign');
            $table->dropColumn('consultant_id');
        });

    }
person Prashant Morem    schedule 11.11.2019

ปิดการใช้งานการตรวจสอบคีย์ต่างประเทศก่อนที่คุณจะวางตารางจากนั้นเปิดใช้งาน

DB::statement('SET FOREIGN_KEY_CHECKS=0;');
Schema::dropIfExists('your_choice_table');
DB::statement('SET FOREIGN_KEY_CHECKS=1;');
person umar_sharif    schedule 11.11.2019