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太隱蔽了,費時費力。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章