Mysql8.0.20报错DROP TABLE IF EXISTS ‘user‘解决方案

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with 
name 'org.springframework.boot.autoconfigure.jdbc.DataSourceInitializerInvoker': Invocation of 
init method failed; nested exception is 
org.springframework.jdbc.datasource.init.ScriptStatementFailedException: Failed to execute SQL 
script statement #1 of class path resource [db/schema.sql]: DROP TABLE IF EXISTS 'user'; nested 
exception is java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the 
manual that corresponds to your MySQL server version for the right syntax to use near ''user'' 
at line 1

这个错误的原因是使用了如下语法

DROP TABLE IF EXISTS 'user';

check the manual that corresponds to your MySQL server version for the right syntax to use near '‘user’( ‘id’ int(11) NOT NULL AUTO_INCREMENT, ‘name’ varchar(255) DEFAULT NULL, ’ at line 1

错误代码

 DROP TABLE IF EXISTS 'user';
--IF object_id('user','U') is not NULL drop table 'user';
CREATE TABLE 'user'(
    'id' int(11) NOT NULL AUTO_INCREMENT,
    'name' varchar(255) DEFAULT NULL,
    'age' int(11) DEFAULT NULL,
    PRIMARY KEY ('id')
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

mysql版本8.0.20

解决方案:去掉引号,包括去掉表名的引号,属性的引号

DROP TABLE IF EXISTS user;
--IF object_id('user','U') is not NULL drop table 'user';
CREATE TABLE user(
    id int(11) NOT NULL AUTO_INCREMENT,
    name varchar(255) DEFAULT NULL,
    age int(11) DEFAULT NULL,
    PRIMARY KEY (id)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

这个bug太隐蔽了,费时费力。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值