当我运行此查询时:
DROP TABLE IF EXISTS `users`;
然后:
CREATE TABLE `users` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`role_id` int(11) NOT NULL DEFAULT '4',
`email` varchar(120) NOT NULL,
`username` varchar(30) NOT NULL DEFAULT '',
`password_hash` char(60) NOT NULL,
`reset_hash` varchar(40) DEFAULT NULL,
`last_login` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`last_ip` varchar(40) NOT NULL DEFAULT '',
`created_on` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`deleted` tinyint(1) NOT NULL DEFAULT '0',
`reset_by` int(10) DEFAULT NULL,
`banned` tinyint(1) NOT NULL DEFAULT '0',
`ban_message` varchar(255) DEFAULT NULL,
`display_name` varchar(255) DEFAULT '',
`display_name_changed` date DEFAULT NULL,
`timezone` char(4) NOT NULL DEFAULT 'UM6',
`language` varchar(20) NOT NULL DEFAULT 'english',
`active` tinyint(1) NOT NULL DEFAULT '0',
`activate_hash` varchar(40) NOT NULL DEFAULT '',
`password_iterations` int(4) NOT NULL,
`force_password_reset` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
KEY `email` (`email`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
我收到错误:
错误代码:1005
无法创建表格' admin_sc.users' (错误:150)
检查/ var / lib / mysql / admin_sc目录以获取权限 - 可以创建具有其他名称的表,但不能创建表users
任何可以提供帮助吗?我的查询中没有任何外键。
答案 0 :(得分:0)
$ perror 105
OS error code 105: No buffer space available
$
你确定放弃"用户"而不是" bf_users" ?
也许只是InnoDB表空间坏了。我会在另一台机器上尝试相同,看看问题是否可重复。至少对我有用:
MariaDB [(none)]> create database testt;
Query OK, 1 row affected (0.04 sec)
MariaDB [(none)]> use testt;
Database changed
MariaDB [testt]> CREATE TABLE `users` (
-> `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
-> `role_id` int(11) NOT NULL DEFAULT '4',
-> `email` varchar(120) NOT NULL,
-> `username` varchar(30) NOT NULL DEFAULT '',
-> `password_hash` char(60) NOT NULL,
-> `reset_hash` varchar(40) DEFAULT NULL,
-> `last_login` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
-> `last_ip` varchar(40) NOT NULL DEFAULT '',
-> `created_on` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
-> `deleted` tinyint(1) NOT NULL DEFAULT '0',
-> `reset_by` int(10) DEFAULT NULL,
-> `banned` tinyint(1) NOT NULL DEFAULT '0',
-> `ban_message` varchar(255) DEFAULT NULL,
-> `display_name` varchar(255) DEFAULT '',
-> `display_name_changed` date DEFAULT NULL,
-> `timezone` char(4) NOT NULL DEFAULT 'UM6',
-> `language` varchar(20) NOT NULL DEFAULT 'english',
-> `active` tinyint(1) NOT NULL DEFAULT '0',
-> `activate_hash` varchar(40) NOT NULL DEFAULT '',
-> `password_iterations` int(4) NOT NULL,
-> `force_password_reset` tinyint(1) NOT NULL DEFAULT '0',
-> PRIMARY KEY (`id`),
-> KEY `email` (`email`)
-> ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (1.33 sec)
MariaDB [testt]>
答案 1 :(得分:0)
我建议你执行一个删除表“users”的脚本(检查它是否已经存在),然后重新创建表
或者正如Nishanthi所说..尝试使用不同的名称创建此表,它可能会起作用
答案 2 :(得分:-1)
在我的意见中,可能是因为users
表是为某些系统相关的表保留的。
users
更改为其他内容。DROP TABLE IF EXISTS users
,然后创建表格。