linux中mysql的迷之报错SQL Error: 1064, SQLState: 42000,You have an error in your SQL syntax;

    技术2022-07-10  124

    错误QL Error: 1064, SQLState: 42000的一般情况

    一般情况下,报错

    Hibernate: delete from user_t u where u.user_id=? and u.topic_id=? 2020-06-28 16:41:39.715 WARN 17315 --- [nio-8800-exec-6] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 1064, SQLState: 42000 2020-06-28 16:41:39.717 ERROR 17315 --- [nio-8800-exec-6] o.h.engine.jdbc.spi.SqlExceptionHelper : 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 'u where u.user_id=1 and u.topic_id=3' at line 1

    是因为sql语句中的表名或者字段名与关键字一致导致的冲突。 比如字段名是delete。 mysql语句:

    select delete from user;

    就会报上面那个错。这个时候需要用符号``把字段名扩进去。 注意是符号` 不是单引号’ 是在键盘的1左边,tab键上面的那个。 正确的mysql语句应该是:

    select `delete` from user;

    为了防止关键字冲突的错误,workbench等自动生成的语句都会用``把字段名表名括起来。

    CREATE TABLE `job` ( `job_ID` bigint(20) NOT NULL AUTO_INCREMENT, `Title` varchar(255) NOT NULL, `desribe` text CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `website` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, `email` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, `company_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `cities` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, `ddl` date DEFAULT NULL, `contactline` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, `keywords` varchar(255) NOT NULL, `delete` int(11) NOT NULL, `user_ID` bigint(20) NOT NULL, `links` varchar(255) DEFAULT NULL, `img` text, `qr` text, PRIMARY KEY (`job_ID`), KEY `putUserID` (`user_ID`), CONSTRAINT `putUserID` FOREIGN KEY (`user_ID`) REFERENCES `user` (`user_ID`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB AUTO_INCREMENT=71 DEFAULT CHARSET=utf8;

    linux的迷惑情况

    项目完成后,在本地测试的情况都是一切正常的。 但是等到部署到centos的服务器上的时候,原来正常的删除操作都不能正确执行。 后来经过一系列测试,发现好像问题出现在使用别名,但是语句中也没有出现关键子。 附上一张尝试的图片: 最后只好把别名都删掉。 删掉之后能够正确运行了,但是依然不清楚他的原因。希望有大佬可以解答一下。

    Processed: 0.011, SQL: 9