Xin chào Tôi có vấn đề khi tạo bảng bằng trình tạo lược đồ di chuyển. Sự cố xảy ra với bảng có khóa tự tham chiếu ngoài. Đây là mã mà tạo ra lỗi:Di trú Laravel tự tham chiếu tới vấn đề chính nước ngoài
Schema::create('cb_category', function($table)
{
$table->integer('id')->primary()->unique()->unsigned();
$table->integer('domain_id')->unsigned();
$table->foreign('domain_id')->references('id')->on('cb_domain');
$table->integer('parent_id')->nullable();
$table->foreign('parent_id')->references('id')->on('cb_category')->onUpdate('cascade')->onDelete('cascade');
$table->string('name');
$table->integer('level');
});
Dưới đây là lỗi:
SQLSTATE[HY000]: General error: 1005 Can't create table 'eklik2.#sql-7d4_e' (errno: 150) (SQL: alter table `cb_cate
đẫm máu add constraint cb_category_parent_id_foreign foreign key (
PARENT_ID ) references
cb_category (
id`) trên del ETE thác trên thác cập nhật) (Bindings: mảng ( ))
[PDOException] SQLSTATE [HY000]: Lỗi chung: 1005 Không thể tạo bảng 'eklik2. # sql-7d4_e '(errno: 150)
Bất kỳ ý tưởng nào?
Tôi có phá vỡ nó trong 2 báo cáo , dù sao vẫn còn lỗi: Giản đồ :: tạo (...); Giản đồ :: bảng ('cb_category', hàm ($ table) { $ table-> foreign ('parent_id') -> references ('id') -> on ('cb_category') -> onUpdate ('cascade ') -> onDelete (' cascade '); }); – gandra404
Được giải quyết bằng vi phạm. Đây là đoạn mã: Lược đồ :: tạo ('cb_category', hàm ($ table) {...}); $ dbh = DB :: getPdo(); $ dbh-> truy vấn ("ALTER TABLE cb_category ADD CONSTRAINT fk_cb_category_parent_id NGOẠI PHÍ (parent_id) TÀI LIỆU THAM KHẢO cb_category (id) TRÊN XÓA KHÔNG CÓ HÀNH ĐỘNG CẬP NHẬT KHÔNG CÓ HÀNH ĐỘNG"); – gandra404