mysql - 如何在原始查询 laravel 中创建表?
问题描述
我正在尝试创建已成功创建的新数据库,并且该数据库中的某些表未创建表。这个查询有什么问题?它说:
Connection.php 第 770 行中的 QueryException:SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 3 行的“CREATE TABLE
activities
(id
int(10) UNSIGNED NOT NULL,”附近使用正确的语法(SQL:CREATE DATABASE authority_70 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; )
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;
");
解决方案
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;
推荐阅读
- node.js - 我无法使用 nodejs 从另一个页面重定向页面
- .net - 如何通过在.net 中将集合名称作为参数传递来从 mongodb 获取集合?
- javascript - 轮询命令 discordJS 错误计时器
- app-inventor - 在麻省理工学院的应用程序发明者中,有没有办法将变量的值从一个屏幕传递和/或保存到另一个屏幕?
- python-3.x - 如何获得每个帖子的 Instagram 标签性能?
- html - 如何用 HTML 和 CSS 制作带有圆形图像和一些文本的卡片?
- reactjs - 如何在 React JS 的列表或库中存储键值对
- ruby-on-rails - ActionController::InvalidAuthenticityToken 突然来了
- vhdl - 将循环语句添加到每一位 VHDL
- git - 当我使用“git stash”时,它报告“超出符号链接”错误并且命令不起作用