gpt4 book ai didi

laravel - 无法使用 laravel 数据库迁移创建外键

转载 作者:行者123 更新时间:2023-11-30 23:44:57 26 4
gpt4 key购买 nike

我的 Laravel 迁移有问题 :(

当我运行 php artisan migrate 时,它​​停止在外键上。

第一次迁移

/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::enableForeignKeyConstraints();
Schema::create('fichefrais', function (Blueprint $table) {
$table->char('idVisiteur', 4);
$table->foreign('idVisiteur')->references('id')->on('visiteur');
$table->char('mois',6);
$table->primary(['idVisiteur', 'mois']);
$table->integer('nbJustificatifs');
$table->decimal('montantValide', 10, 2);
$table->date('dateModif');
$table->char('idEtat', 2);
$table->foreign('idEtat')->references('id')->on('etat');
});
}

/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('fichefrais');
}

第二个

/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::enableForeignKeyConstraints();
Schema::create('lignefraishorsforfait', function (Blueprint $table) {
$table->integer('id');
$table->primary('id');
$table->char('idVisiteur', 4);
$table->char('mois',6);
$table->foreign('idVisiteur')->references('idVisiteur')->on('fichefrais');
$table->foreign('mois')->references('mois')->on('fichefrais');
$table->char('libelle', 100);
$table->date('date');
$table->decimal('montant', 10, 2);
});
}

/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('lignefraishorsforfait');
}

运行命令后,我得到了这个错误:

[Illuminate\Database\QueryException]
SQLSTATE[HY000]: General error: 1005 Can't create tablegsb_larave.#sql-176_b9 (errno: 150 "Foreign key constraint isincorrectly formed") (SQL: alter table lignefraishors forfaitadd constraint lignefraishorsforfait_mois_foreign foreign key(mois) references fichefrais (mois) on delete cascade on updatecascade)

[PDOException]
SQLSTATE[HY000]: General error: 1005 Can't create tablegsb_laravel.#sql-176_b9 (errno: 150 "Foreign key constraint isincorrectly formed")

最佳答案

您的 visiteur 表是否有一个 id 作为主键?如果是,它的数据类型是否为charlength4。 ** lignefraishorsforfait** 表中的 idVisiteur 数据类型为 char,必须与 visiteur 表中的主键相同。

关于laravel - 无法使用 laravel 数据库迁移创建外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42985790/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com