这是我的错误(如果您需要更多信息请询问) - 错误 SQL查询:
CREATE TABLE dave_bannedwords(
id INT( 11 ) NOT NULL AUTO_INCREMENT ,
word VARCHAR( 60 ) NOT NULL DEFAULT '',
PRIMARY KEY ( id ) ,
KEY id( id )
) TYPE = MYISAM ;
MySQL说:
1064 - 您的SQL语法出错;检查与MySQL服务器版本对应的手册,以获得正确的语法 在第6行'TYPE = MyISAM'附近
答案 0 :(得分:71)
正如CREATE TABLE
Syntax所述:
注意强>
较早的TYPE
选项与ENGINE
同义。TYPE
在MySQL 4.0中已弃用,在MySQL 5.5中已删除。 升级到MySQL 5.5或更高版本时,您必须转换依赖TYPE
的现有应用程序来改为使用ENGINE
。
因此,您需要:
CREATE TABLE dave_bannedwords(
id INT(11) NOT NULL AUTO_INCREMENT,
word VARCHAR(60) NOT NULL DEFAULT '',
PRIMARY KEY (id),
KEY id(id) -- this is superfluous in the presence of your PK, ergo unnecessary
) ENGINE = MyISAM ;
答案 1 :(得分:0)
有关SQL转储文件中CREATE TABLE .. TYPE=""
语法的补充说明
TLDR:如果您仍然在由第三方工具生成的SQL转储文件中获得CREATE TABLE ... TYPE="..."
语句,则很可能表明您的服务器配置为使用默认的sqlmode
为MYSQL40
或MYSQL323
。
长话
就像其他人所说的那样,在MySQL中很久以来不推荐使用TYPE
的{{1}}参数。 CREATE TABLE
正确使用mysqldump
参数,除非您特别要求它生成向后兼容的转储(例如,在ENGINE
最高为5.7的版本中使用--compatible=mysql40
)。>
但是,许多外部SQL转储工具(例如,集成在MySQL客户端中的工具(例如phpmyadmin,Navicat和DBVisualizer)以及外部自动备份服务(例如iControlWP)使用的工具)并没有特别意识到此更改,并且而是依靠mysqldump
命令为每个表提供表创建语句(要清楚地说:这实际上是一件好事)。但是,如果将SHOW CREATE TABLE ...
变量设置为SHOW CREATE TABLE
或TYPE
,sqlmode
实际上会产生过时的语法,包括MYSQL40
参数。
因此,如果您仍然在由第三方工具生成的SQL转储文件中获得MYSQL323
语句,则很可能表明您的服务器配置为使用默认的CREATE TABLE ... TYPE="..."
为sqlmode
或MYSQL40
。
这些MYSQL323
基本上将MySQL配置为保留一些向后兼容的行为,并且几年前强烈建议默认使用它们。但是,如果没有这些模式,您仍然拥有无法正常工作的任何代码,这是极不可能的。无论如何,已经弃用了sqlmode
,MYSQL40
和其他几个类似的MYSQL323
,并且在MySQL 8.0和更高版本中不受支持。
如果您的服务器仍配置有这些sqlmode
,并且您担心如果更改这些遗留程序,某些旧版程序可能会失败,那么一种可能性是为该程序在本地设置sqlmode
,方法是:连接后立即执行sqlmode
。请注意,这仅应视为临时补丁,在MySQL 8.0及更高版本中将不起作用。
一个不涉及重写SQL查询的,更可靠的解决方案将是确定要启用的兼容性功能,并基于每个程序仅启用那些兼容性功能(如前所述)。理想情况下,默认SET SESSION sql_mode = 'MYSQL40';
(即在服务器的配置中)应该保持未设置状态(它将使用当前版本的MySQL官方默认值)。 sqlmode
(自MySQL 5.7起)的完整列表在此处描述:https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html。
答案 2 :(得分:-2)
CREATE TABLE `admnih` (
`id` int(255) NOT NULL auto_increment,
`asim` varchar(255) NOT NULL default '',
`brid` varchar(255) NOT NULL default '',
`rwtbah` int(1) NOT NULL default '0',
`esmmwkeh` varchar(255) NOT NULL default '',
`mrwr` varchar(255) NOT NULL default '',
`tid` int(255) NOT NULL default '0',
`alksmfialdlil` int(255) NOT NULL default '0',
`tariktsjil` varchar(255) NOT NULL default '',
`aimwke` varchar(255) NOT NULL default '',
`twkie` text NOT NULL,
`rwtbahkasah` int(255) NOT NULL default '0',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=2 ;
答案 3 :(得分:-2)
SELECT Email, COUNT(*)
FROM user_log
WHILE Email IS NOT NULL
GROUP BY Email
HAVING COUNT(*) > 1
ORDER BY UpdateDate DESC
MySQL说:文档#1064 - 您的SQL中有错误 句法;查看与MySQL服务器版本对应的手册 在第36行的“TYPE = MyISAM”附近使用正确的语法
以下哪项更正:
CREATE TABLE users_online (
ip varchar(15) NOT NULL default '',
time int(11) default NULL,
PRIMARY KEY (ip),
UNIQUE KEY id (ip),
KEY id_2 (ip)
TYPE=MyISAM;
)
#
# Data untuk tabel `users_online`
#
INSERT INTO users_online VALUES ('127.0.0.1', 1158666872);
答案 4 :(得分:-2)
尝试以下查询
.lovernehovermarket i.fa.fa-rocket {
transform: rotate(0deg);
transition: transform 999s;
}