Php 如何在laravel数据库的同一个表中添加2个自动增量列

Php 如何在laravel数据库的同一个表中添加2个自动增量列,php,database,laravel,Php,Database,Laravel,我想知道是否可以在laravel的同一个表中添加2个自动增量列?但第二个有不同的价值,从它开始 uniID我想从43600000开始, Laravel不支持这一点,因为数据库通常不支持它。increments()和biginrements()列类型不能在同一个表Schema中多次使用,并且在创建时将失败: PDOException: SQLSTATE[HY000]: General error: 1 table "students" has more than one primary key

我想知道是否可以在laravel的同一个表中添加2个自动增量列?但第二个有不同的价值,从它开始


uniID我想从43600000开始,
Laravel不支持这一点,因为数据库通常不支持它。
increments()
biginrements()
列类型不能在同一个表
Schema
中多次使用,并且在创建时将失败:

PDOException: SQLSTATE[HY000]: General error: 1 table "students" has more than one primary key
但是,如果
uniId
总是比
id
大43600000,则可以在Eloquent中使用计算属性:

班级学生
{
公共函数getUniIdAttribute()
{
返回$this->id+43600000;
}
}
然后,您可以在控制器或刀片模板中使用:

>$user=Student::first()
=>应用程序\学生{#3078
id:1,
...
}
>>>$student->uniId
=> 43600001

这种方法的缺点是,您将无法在其他表中使用
uniId
作为外键。

数据库中的数据可能重复,而不是重复-您的第二个字段可以作为id+43600000输出。您可以写电子邮件或任何东西让我与您联系吗?@shrooq请随意在此处发表评论如果有什么不清楚的话。或者你可以问一个新问题:)我如何添加唯一id?不要说你,因为这太过分了long@shrooq唯一真正独特的是您的自动递增主键。否则,您可以从学生独有的其他内容(如电子邮件)生成哈希address@shrooq或者采用基于名字、姓氏和数字的slug方法。类似
PDOException: SQLSTATE[HY000]: General error: 1 table "students" has more than one primary key