我是数据库新手我遇到此错误我正在使用MariaDB错误1064(42000):SQL语法中有错误;查看与您的MariaDB服务器版本对应的手册,了解在第3行"hotel_name varchar(20),city varchar(10))"附近使用的正确语法其他错误错误1064(42000):SQL语法中有错误;查看与您的MariaDB服务器版本对应的手册,了解在第1行""附近使用的正确语法
ia2d9nvy1#
#字符是一个注解字符。该注解之后直到行尾的任何字符都将被忽略。读取https://mariadb.com/kb/en/comment-syntax/所以这个:
#
create table hotel( hotel# number(10), hotel_name varchar(10) ...
对SQL解析器显示为:
create table hotel( hotel hotel_name varchar(10) ...
列hotel后面缺少数据类型和逗号。如果使用反勾号分隔列名,则可以在列名中使用标点字符等特殊符号,如下所示:
hotel
`hotel#` int,
(Also使用int而不是number,因为后者不是MariaDB支持的数据类型。)但是你必须记住每次你在任何查询中引用该列时都要使用反勾号,如果你能避免使用特殊字符的话会更简单。这更容易:
int
number
hotel_num int,
lnvxswe22#
此问题可能与您使用的“number(10)"有关。这不是有效的MariaDB数据类型。请参阅此处的MariaDB数据类型:https://www.mariadbtutorial.com/mariadb-basics/mariadb-data-types/编辑:MariaDB也不允许在标识符名称中使用#。请在此处查看有效的标识符名称:https://mariadb.com/kb/en/identifier-names/
2条答案
按热度按时间ia2d9nvy1#
#
字符是一个注解字符。该注解之后直到行尾的任何字符都将被忽略。读取https://mariadb.com/kb/en/comment-syntax/所以这个:
对SQL解析器显示为:
列
hotel
后面缺少数据类型和逗号。如果使用反勾号分隔列名,则可以在列名中使用标点字符等特殊符号,如下所示:
(Also使用
int
而不是number
,因为后者不是MariaDB支持的数据类型。)但是你必须记住每次你在任何查询中引用该列时都要使用反勾号,如果你能避免使用特殊字符的话会更简单。
这更容易:
lnvxswe22#
此问题可能与您使用的“number(10)"有关。这不是有效的MariaDB数据类型。请参阅此处的MariaDB数据类型:https://www.mariadbtutorial.com/mariadb-basics/mariadb-data-types/
编辑:MariaDB也不允许在标识符名称中使用#。请在此处查看有效的标识符名称:https://mariadb.com/kb/en/identifier-names/