【问题标题】:Laravel create table with raw stringLaravel 使用原始字符串创建表
【发布时间】:2018-05-03 19:47:33
【问题描述】:

如何在 laravel 5.5 中使用原始数据库字符串创建一个新表

$createTableSqlString =
  "CREATE TABLE $newTableName (
      product_id INT(11) NOT NULL AUTO_INCREMENT,
      ...
    )
    COLLATE='utf8_general_ci'
    ENGINE=InnoDB
    AUTO_INCREMENT=1;";

我知道有一个 Illuminate\Support\Facades\Schema 用于制作新表,

Schema::connection('mysqlInvsys')->create(...);

但是我应该如何定义或给它原始字符串 DB::raw($createTableSqlString) ?我在official doc 中没有找到任何示例。

【问题讨论】:

  • 为什么不使用专为此设计的内置migrations
  • 因为我必须使用另一个 mysql db 也被其他(不是 laravel)网站使用,所以我必须使它成为“旧”的原始方式。

标签: php mysql laravel laravel-5 laravel-5.5


【解决方案1】:

Laravel 提供了运行原始 SQL 查询的函数,如 here 所示。

创建表可以使用DB::statement($createTableSqlString)

【讨论】:

  • 哦,谢谢,它的工作! :) 我会在时间限制后接受这个答案。
猜你喜欢
  • 2015-07-01
  • 2017-10-22
  • 2014-03-03
  • 2017-11-01
  • 2021-04-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-12
  • 1970-01-01
相关资源
最近更新 更多