public function up()
{
Schema::create('jadwal_praks', function (Blueprint $table) {
$table->increments('id');
$table->integer('thnajrn_id', 10)->unsigned();
$table->foreign('thnajrn_id')->references('id')->on('tahun_ajarans');
$table->integer('prak_id', 10)->unsigned();
$table->foreign('prak_id')->references('Prak_kode')->on('mata_praks');
$table->integer('hari_id', 10)->unsigned();
$table->foreign('hari_id')->references('id')->on('haris');
$table->integer('jam_id', 10)->unsigned();
$table->foreign('jam_id')->references('id')->on('jams');
$table->integer('ruang_id', 10)->unsigned();
$table->foreign('ruang_id')->references('id')->on('ruangs');
$table->integer('kap_id', 10)->unsigned();
$table->foreign('kap_id')->references('id')->on('kapasitas');
$table->timestamps();
$table->rememberToken();
});
}运行后php artisan migrate
照明\数据库\QueryException SQLSTATE42000:语法错误或访问冲突: 1075个不正确的表定义;只能有一个auto can,并且它必须定义为一个键(SQL: create
jadwal_praks(idint无符号非空auto_increment ) 主键,thnajrn_idint无符号非空auto_increment主键,prak_idint无符号非空自动_increment主键,hari_idint无符号非空auto_increment主键,jam_idint无符号nul auto_increment主键,ruang_idint无符号非空auto_increment主键,kap_idint无符号 非空auto_increment主键、created_at时间戳空、updated_at时间戳空、remember_tokenv archar(100) null )默认字符集utf8排序规则utf8_unicode_ci)
还有这个
PDOException SQLSTATE42000:语法错误或访问冲突: 1075不正确的表定义;只能有一个auto列,必须将其定义为键
发布于 2017-02-05 20:49:09
根据我的观察,我认为您应该从(例如)中删除添加到外域的default值:
$table->integer('thnajrn_id', 10)->unsigned(); 至:
$table->integer('thnajrn_id')->unsigned();PS:有着类似的经验,我知道目前我在Laravel5.2工作的一个项目就是这样做的。
希望这会有所帮助:)
发布于 2018-10-28 01:04:51
使用$table->integer('thnajrn_id', 10)->unsigned()时,这意味着将第二个参数设置为true,表示AutoIncrement
try
table->integer('thnajrn_id')->length(10)->unsigned();发布于 2021-06-01 22:41:10
当您使用$table->unsignedBigInteger('account_id')->nullable();时,仍然可以得到相同的错误,因为nullable()生成的默认值可能会产生相同的错误。所以始终保持您的外键为空,既不是nullable也不是default(0)
https://stackoverflow.com/questions/42053392
复制相似问题