我正在处理清算库,并试图将角色插入到角色表中。
CREATE TABLE roles
(
`role_id` int(11) NOT NULL AUTO_INCREMENT,
`role_name` varchar(50) NOT NULL,
PRIMARY KEY (`role_id`)
AUTO_INCREMENT = 18
DEFAULT CHARSET = utf8;
insert into roles (role_id, role_name)
values (1, 'USER');
角色类:
@Entity
@Table(name = "roles")
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class RoleEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int roleId;
@Column(nullable = false, length = 45)
private String roleName;
public RoleEntity(int roleId) {
this.roleId = roleId;
}
public RoleEntity(String roleName) {
this.roleName = roleName;
}
}
创建表工作良好,表被创建。问题是插入到。错误是
Reason: liquibase.exception.DatabaseException: 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 'insert into roles (role_id, role_name)
values (1, 'USER')' at line 10 [Failed SQL: (1064) CREATE TABLE roles
(
`role_id` int(11) NOT NULL AUTO_INCREMENT,
`role_name` varchar(50) NOT NULL,
PRIMARY KEY (`role_id`)
) ENGINE = InnoDB
AUTO_INCREMENT = 18
DEFAULT CHARSET = utf8;
但是语法没问题。如何以其他方式将角色插入到表中。以某种方式通过db_changelog.xml
发布于 2022-06-01 21:12:16
来自这篇文章:您的SQL语法有错误;请检查与您的MySQL服务器版本对应的手册,以便在第2行使用接近“‘)的正确语法。
单引号将终止MySQL中的字符串以及作为SQL命令处理的所有过去的内容。您真的不想这样写SQL。充其量,您的应用程序会断断续续(正如您正在观察的那样),最坏的情况是,您刚刚引入了一个巨大的安全漏洞。
下面是准备好的语句和PDO的伟大的文章。
https://stackoverflow.com/questions/71422499
复制相似问题