mysql - laravel 是否可以使用字符串自动递增主键

标签 mysql laravel laravel-5

我需要一个带有自动递增字符串(例如 A1、A2、A3)的主键

如果可以的话请帮助我。

最佳答案

在Mysql中没有直接的方法,但你可以做的是创建一个用于存储系列的表,你可以创建一个包含列的系列表 ID、系列、前缀和类别 您可以从系列表中获取下一个系列号

例如。 系列表有以下记录

1 | 853 | CNO | customers

上面的记录 ID 是 1,853 是系列号,CNO 是前缀,类别是客户,我想要的是下一个客户应该有系列号 CNO853 然后只需编写一个函数

public static function getNextSeriesFor($category)
{
    $number = false;
    $details = \App\Series::where('category', $category)->first();
    if ($details != null) {
        $series_number = $details->series_number;
        $details->series_number = $details->series_number + 1;
        $details->save();
        $number = $details->prefix.$series_number;
    }

    return $number;
}

这将为我返回客户的下一个系列

例如。 CNO853、CNO854、CNO855、...

关于mysql - laravel 是否可以使用字符串自动递增主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43370368/

相关文章:

java - 我是否需要为列设置自动增量才能生成 identit 工作

php - 使用 Eloquent 查询进行 Laravel 日期分组

php - Laravel 中的闭包是什么?

php - laravel seeds 唯一列忽略重复条目

php - 将一个字符串分成多个查询

mysql - SQL连接不完整的表

Laravel Eloquent 多数据库

php - withoutOverlapping() 在 Laravel Schedule 中不起作用

php - 为什么服务器有时会提供错误版本的网页?

php - Laravel - Controller 在应用程序中调用存储库