我正在尝试创建新的数据库,该数据库已成功创建,但该数据库中的某些表未创建。这个查询有什么问题吗?它说:
QueryException in Connection.php line 770: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'CREATE TABLE
activities
(id
int(10) UNSIGNED NOT NULL, ' at line 3 (SQL: CREATE DATABASE institution_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;
关于mysql - 如何在原始查询 Laravel 中创建表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56722705/