【问题标题】:Find out if column is unique in PHP or Laravel找出列在 PHP 或 Laravel 中是否唯一
【发布时间】:2015-06-20 03:00:57
【问题描述】:

我正在尝试检查数据库中的列是否唯一。

我如何在 PHP/Laravel 中做到这一点?

Schema Builder 不提供任何东西。我还查看了DB:: 门面。我还尝试了一般搜索“php 列是唯一的”

我的目的是取一张表,添加一个'site_id'列,然后让所有唯一的列,比如unique(email),变成unique([email, site_id])

【问题讨论】:

  • 底层数据库是 mysql - 如果这很重要的话
  • SHOW INDEXES FROM tablename WHERE Column_name='columname' AND NOT Non_unique
  • @icecub 我会试试的
  • 这个问题好像已经有人回答了stackoverflow.com/questions/1836502/…
  • @Salar - 我希望有一个 PHP API - 如果不存在,并且似乎已经完成,我将直接访问 MySQL

标签: php laravel


【解决方案1】:

Laravel 8 获取表索引的解决方案

使用 Illuminate\Support\Facades\DB;

$indexes = DB::connection()->getDoctrineSchemaManager()->listTableIndexes('tablename');

foreach($indexes as $index_name =>$index_data){
    if(!$index_data->isPrimary() && $index_data->isUnique()){
        //Your code
    }
}

【讨论】:

    【解决方案2】:

    使用@icecub 注释 - 没有“PHP”方式获取数据,我需要直接使用 MySQL

    $indexList = DB::select(DB::raw("SHOW INDEXES FROM $tableName WHERE NOT Non_unique and Key_Name <> 'PRIMARY'"));

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-10
      • 1970-01-01
      • 2016-08-01
      相关资源
      最近更新 更多