INSERT INTO Table1 (Column1, Column2)
VALUES ('bbbbbbb', 'aaa');
INSERT INTO Table2 (Column1, Column2, Column3)
VALUES ('bbbbb', 'hhhh', 'eeee');
我正在使用一个网站,请检查我的SQL语法:https://www.eversql.com/sql-syntax-check-validator/。当SQL工作时,它显示错误:
您的SQL语法有错误;似乎错误就在附近:'INSERT`INTO Table2(Column1,Column2,Column3)值(第5行的'bbbbb','hhhh','eee'
由于某些原因,网站显示错误。为什么会这样呢?我也尝试过以下网站:https://www.piliapp.com/mysql-syntax-check/
答案 0 :(得分:1)
如果我一次将每个INSERT语句粘贴到eversql语法检查器中,则不会报告错误。
您显示的错误消息表明,一旦启动第二个INSERT,解析器就会感到困惑。
这两个事实充分表明语法检查器不支持一次性检查多个SQL语句。
我假设检查器通过对语句执行prepare()
来工作,这将检查语法而不执行该语句。准备不支持多查询。记录在案:https://dev.mysql.com/doc/refman/8.0/en/c-api-multiple-queries.html
多重语句和结果功能只能与mysql_query()或mysql_real_query()一起使用。它们不能与prepared statement接口一起使用。准备好的语句处理程序被定义为仅与包含单个语句的字符串一起使用
也看到类似这样的确认:https://bugs.mysql.com/bug.php?id=9121
答案 1 :(得分:0)
我认为在创建表时,正在使用的数据类型存在错误。 根据输入的数据类型,数据类型可能不匹配