我有这张桌子:
public function up()
{
Schema::create('edition', function (Blueprint $table) {
$table->increments('id');
$table->integer('volume');
$table->text('cover')->nullable();
$table->enum('number', ['1', '2']);
$table->timestamps();
});
Schema::table('journal', function(Blueprint $table) {
$table->foreign('id_edition')->references('id')->on('edition')->onDelete('cascade')->onUpdate('cascade');
});
}
Run Code Online (Sandbox Code Playgroud)
我想将列Volume和Number的组合作为唯一键.例如,存在数据"Volume 1,Number 1",当用户插入相同的组合时,它将抛出数据已存在的错误消息.我有办法在Laravel做到这一点吗?
只需在up()方法中包含以下代码段即可
$table->unique(['volume','number']);
Run Code Online (Sandbox Code Playgroud)
通过设置此约束,如果您插入"第1卷,第1号",一旦它可以正常.但是,如果您尝试再次执行相同操作,则会抛出错误.
条件:
MySQL和不是SQLITE| 归档时间: |
|
| 查看次数: |
1350 次 |
| 最近记录: |