如何在原始查询Laravel中创建表?

时间:2019-06-23 09:46:28

标签: mysql laravel laravel-5

我正在尝试创建成功创建的新数据库,并且该数据库中的某些表未创建。这个查询怎么了?它说:

  Connection.php第770行中的

QueryException:   SQLSTATE [42000]:语法错误或访问冲突:1064 SQL语法有错误;请查看与您的MariaDB服务器版本相对应的手册,以在'CREATE TABLE activities(   id int(10)UNSIGNED NOT NULL,   '位于第3行(SQL:   创建数据库机构_70字符集utf8集合utf8_general_ci;

     

创建表activitiesid int(10)UNSIGNED NOT NULL,name   varchar(150)收集utf8_unicode_ci NOT NULL,created_at时间戳   NULL DEFAULT NULL,updated_at时间戳NULL DEFAULT NULL,   deleted_at时间戳记NULL默认值NULL)ENGINE = MyISAM缺省值   CHARSET = utf8 COLLATE = utf8_unicode_ci; )

DB::connection('rc')->statement("
    CREATE DATABASE institution_$institutionId CHARACTER SET utf8 COLLATE utf8_general_ci;

    CREATE TABLE `activities` (
      `id` int(10) UNSIGNED NOT NULL,
      `name` varchar(150) COLLATE utf8_unicode_ci NOT NULL,
      `created_at` timestamp NULL DEFAULT NULL,
      `updated_at` timestamp NULL DEFAULT NULL,
      `deleted_at` timestamp NULL DEFAULT NULL
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    ");

1 个答案:

答案 0 :(得分:0)

在时间戳记后删除NULL

   CREATE TABLE `activities` (
      `id` int(10) UNSIGNED NOT NULL,
      `name` varchar(150) COLLATE utf8_unicode_ci NOT NULL,
      `created_at` timestamp DEFAULT NULL,
      `updated_at` timestamp DEFAULT NULL,
      `deleted_at` timestamp DEFAULT NULL
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;