Mysql 如何在laravel中生成唯一序列号

Mysql 如何在laravel中生成唯一序列号,mysql,laravel,serialization,eloquent,uniqueidentifier,Mysql,Laravel,Serialization,Eloquent,Uniqueidentifier,我正在尝试为我的客户构建一个应用程序,我的客户希望保留其客户的所有数据。他希望为他的客户生成一个唯一的序列号,并且序列号必须是连续的。他的要求是- 1.应该有一个表单来创建客户条目。 2.在该表单中,应该有一个用于唯一客户id的字段。默认情况下,它的值应该是一个序列号,该值是前一个序列号的+1。如果他愿意,他可以更改该字段中的序列号并提交表单 我发现一种更简单的方法是从数据库中获取max id并将其加1。但若有两个人试图将条目插入数据库呢?在这种情况下,数据库中会有重复的序列号 现在,我想了解如

我正在尝试为我的客户构建一个应用程序,我的客户希望保留其客户的所有数据。他希望为他的客户生成一个唯一的序列号,并且序列号必须是连续的。他的要求是- 1.应该有一个表单来创建客户条目。 2.在该表单中,应该有一个用于唯一客户id的字段。默认情况下,它的值应该是一个序列号,该值是前一个序列号的+1。如果他愿意,他可以更改该字段中的序列号并提交表单

我发现一种更简单的方法是从数据库中获取max id并将其加1。但若有两个人试图将条目插入数据库呢?在这种情况下,数据库中会有重复的序列号

现在,我想了解如何为每个条目生成唯一的序列号。我将使用mysql数据库


提前感谢

最好的方法是创建一个额外的表,其中有一列用于序列号。每次加载表单时,您都会从该表中获取最大序列号+1,并插入该值,然后将表单上序列号字段的值设置为该值。这将确保当两个人同时加载表单时,他们仍然具有不同的序列号。这将防止将要插入数据的人感觉他们需要彼此竞争才能首先获得序列号

其次,在负责存储表单信息的表上,在序列号字段上放置一个唯一键,这将确保序列号在插入表时始终是唯一的


第三,现在尝试向该表中插入非唯一序列号将由于唯一键而产生sql错误。在尝试保存表单数据之前,请确保使用唯一验证器对其进行验证。

首先,您需要编辑问题以包含示例代码。你的问题不是很清楚。如果您试图在laravel中生成一个随机数,您可以使用str_random40;作用40这里是要生成的字符串的长度。P并不是试图生成一个随机字符串。问题太广泛了。