php - 如何在laravel 5.4 的迁移文件中使用原始mysql 语句?

标签 php mysql laravel-5 migration database-migration

我有一个mysql语句:

'SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";'

我想在 laravel 5.4 的迁移文件中运行它,但我不知道该怎么做?

以下是我的迁移文件的部分内容:

> public function up()
>     {
>         //
>         Schema::create('users', function (Blueprint $table) {
> 
>             // SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"
>             // todo 
> 
>             $table->engine = 'InnoDB';
>             $table->charset = 'utf8mb4';
>             $table->collation = 'utf8mb4_unicode_ci';
> 
>             $table->int('id',11)->comment('ID');
>             $table->string('name',50)->nullable()->comment('name');
>             $table->string('phone',20);
>             ...

谁能帮帮我?

最佳答案

You can use DB::statement

试试下面

public function up()
{
   Schema::create('users', function (Blueprint $table) {
       DB::statement('SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";');
       //run other migrations 
   }
}

关于php - 如何在laravel 5.4 的迁移文件中使用原始mysql 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42576146/

相关文章:

php - 在 Ubuntu Trusty 上处理 php5.4

php - 使用 pchart 和 mysql 创建图表 - 提供的示例中的正确语法

mysql - 绘制 mariadb 数据库的填充演化图

Laravel Eloquent 查询运行两次

php - Laravel 中的单个查询

php - 页面重新加载后不触发功能 - Wordpress

php - 选择使用电子邮件地址

php - 如何有选择地添加第三个选择框或重新标记并重定向到第二个选择框?

MySQL - 以文本开头的 asc 排序

laravel - bool 值无法存储在数据库中(laravel)