Mysql SQLint显示语法错误,但批处理文件是否正确运行?

Mysql SQLint显示语法错误,但批处理文件是否正确运行?,mysql,sql,sublimetext3,sublimelinter,Mysql,Sql,Sublimetext3,Sublimelinter,我在插件中使用Sublime文本,并遵循的教程示例如下所示,其中一个包含以下内容: CREATE TABLE shop ( article INT(4) UNSIGNED ZEROFILL DEFAULT '0000' NOT NULL, dealer CHAR(20) DEFAULT '' NOT NULL, price DOUBLE(16,2) DEFAULT '0.00' NOT NULL,

我在插件中使用Sublime文本,并遵循的教程示例如下所示,其中一个包含以下内容:

CREATE TABLE shop (
    article INT(4) UNSIGNED ZEROFILL DEFAULT '0000' NOT NULL,
    dealer  CHAR(20)                 DEFAULT ''     NOT NULL,
    price   DOUBLE(16,2)             DEFAULT '0.00' NOT NULL,
    PRIMARY KEY(article, dealer));
INSERT INTO shop VALUES
    (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
    (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
在启用了linter的升华文本中,我看到一个语法错误:

如果我将鼠标悬停在它上面,它只会显示“ERROR:Syntax ERROR near”(“”)。但是,它似乎可以作为批处理输入正常运行:

mysql> source shop.sql
Query OK, 0 rows affected (0.07 sec)

Query OK, 7 rows affected (0.00 sec)
Records: 7  Duplicates: 0  Warnings: 0

mysql> 

你知道是什么导致了这个“误报”语法错误吗?

我不相信字符串是INT的有效默认值。

我不相信字符串是INT的有效默认值。

你的问题看起来像是底层linting工具没有使用正确的SQL方言造成的,这让它认为t您使用的SQL无效,即使(对于MySQL)是

再深入一点看,该软件包说它用于进行linting,该存储库中的自述文件包括以下内容:

在这个阶段,SQLint根据ANSI语法检查SQL,并使用PostgreSQL SQL解析器来实现这一点。我们希望及时增加对非标准SQL变体(例如MySQL)的支持。欢迎提供帮助


因此,目前该工具似乎无法linting使用非ANSI/PostgreSQL风格SQL的SQL文件。

您的问题似乎是由于底层linting工具未使用正确的SQL方言造成的,这使得它认为您使用的SQL无效,即使(对于MySQL)是有效的

再深入一点看,该软件包说它用于进行linting,该存储库中的自述文件包括以下内容:

在这个阶段,SQLint根据ANSI语法检查SQL,并使用PostgreSQL SQL解析器来实现这一点。我们希望及时增加对非标准SQL变体(例如MySQL)的支持。欢迎提供帮助


因此,目前该工具似乎无法过滤使用非ANSI/PostgreSQL风格SQL的SQL文件。

int
通常不需要长度,但MySQL允许。因此,这是MySQL特有的东西。
int
通常不需要长度,但MySQL允许。因此,这是MySQL特有的东西。