mysql - 玛丽亚数据库服务器
问题描述
我在一个错误中着陆:
错误代码 1064:您的 sqlsyntax 中有错误;检查与您的 MariaDB 服务器语法相对应的手册,以了解要使用的正确语法
CREATE TABLE 'company'.'employee'(
'fname' VARCHAR (10) NOT NULL,
'mname' VARCHAR(2) NULL,
'lname' VARCHAR(10) NOT NULL,
'ssn' CHAR(9) NOT NULL,
'bdate' DATE,
'address' VARCHAR(20) NOT NULL,
'sex' CHAR NULL,
'salary' DECIMAL (10, 2) NULL,
'super_ssn' CHAR(9) NULL,
'd_no' INT NOT NULL,
PRIMARY KEY ('ssn'));
解决方案
使用`
代替'
(单引号),
你应该像下面这样写:
CREATE TABLE `company`.`employee`(
`fname` VARCHAR (10) NOT NULL,
`mname` VARCHAR(2) NULL,
`lname` VARCHAR(10) NOT NULL,
`ssn` CHAR(9) NOT NULL,
`bdate` DATE,
`address` VARCHAR(20) NOT NULL,
`sex` CHAR NULL,
`salary` DECIMAL (10, 2) NULL,
`super_ssn` CHAR(9) NULL,
`d_no` INT NOT NULL,
PRIMARY KEY (`ssn`)
);
实际上,` 符号是可选的,但如果字段名称、表或数据库与关键字或 MySQL 子句相同,则使用它,目的是使 MySQL 不会与您在查询中的意思混淆。
例如 :
SELECT column FROM `char`
我使用`
符号是因为表的名称与 MySQL 上的关键字相同,即CHAR()
(但这样命名是一种不好的方式),所以请记住,如果您编写 SQL 查询,您必须决定使用`
符号
希望这可以帮到你。
推荐阅读
- keycloak-rest-api - REST API 的 Keycloak 登录已被 CORS 阻止
- python - 列表中数组的非元素明智配对
- java - 如何将 *.sh 文件转换为 *.exe 文件?
- android - Android Kotlin - 在 RecyclerView 适配器中询问权限
- ios - 在另一个框架中弱链接一个第三方框架
- rust - nalgebra:为通用 MatrixMN 实现函数
- python - 将字典值中的列表列表组合到单个表达式python 3.7中的元组列表中
- c - 在 c 编程中的递归函数中更新了动态列和行大小的二维数组
- nlp - 在 Watson Knowledge Studio 中为自定义实体类型创建 json 文件
- java - 正则表达式 "[a-zA-Z0-9_]+(?i).concat\\([ -~]*\\ " 导致大字符串的灾难性回溯