【问题标题】:TRUNCATE...CASCADE in Laravel 5Laravel 5 中的截断...级联
【发布时间】:2015-09-17 13:02:35
【问题描述】:

这应该很简单,但我在文档或其他地方找不到它。如何在 Laravel 5.1 中使用 Eloquent ORM TRUNCATE...CASCADE 一个带有外键的表?仅使用 User::truncate(); 不会通过 CASCADE 参数。

【问题讨论】:

  • 是 MySQL 数据库吗?
  • 不,我正在使用 Postgres - 我希望在不编写原始 SQL 的情况下做到这一点
  • 我不相信这是可能的。我在 API 中看不到任何东西,而且我所做的小研究,看起来人们只是在使用 DB::statement('TRUNCATE users CASCADE');
  • @user3158900 我也没找到太多东西,烦人

标签: laravel laravel-5 eloquent laravel-5.1


【解决方案1】:

看起来这样做的唯一方法是直接运行该语句:

DB::statement('TRUNCATE users CASCADE');

【讨论】:

    【解决方案2】:

    如果您需要truncate 多个表,您可以删除CASCADE 关键字并提供以逗号分隔的表名列表。

        $tables = [
            'roles',
            'role_users',
            'users',
            'revisions',
        ];
    
        if (count($tables) > 1) {
            DB::statement('TRUNCATE TABLE ' . implode(',', $tables) . ';');
        } else {
            DB::statement('TRUNCATE TABLE ' . $tables[0] . ' CASCADE;');
        }
    

    【讨论】:

      猜你喜欢
      • 2016-01-08
      • 2015-10-06
      • 2018-06-06
      • 1970-01-01
      • 2020-03-10
      • 1970-01-01
      • 1970-01-01
      • 2019-08-04
      • 2015-04-25
      相关资源
      最近更新 更多