mysql - SQL - ',' 附近的语法错误

标签 mysql sql sql-server insert

我终其一生都无法弄清楚为什么无论我尝试使用我的本地数据库中的哪一个(oracle、mysql、microsoft sql)这个查询都不起作用。

INSERT INTO testtable
VALUES ( 'testvalue' , 12345678, 123.04, 0, '1950-01-03' )

例如,对于 Microsoft SQL Server,我在“,”附近收到错误。

通过 MySQL 我得到了

您的 SQL 语法在第 2 行的“12345678, 123.04, 0, )”附近有错误。

我尝试过使用它,我查看了 W3 学校的 INSERT INTO 语法。一切看起来都很好。会是什么?

谢谢!

编辑:

根据要求:这是 mysql 的布局

+------------+--------------+------+-----+---------+-------+
| Field      | Type         | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+-------+
| TestString | varchar(600) | NO   |     | NULL    |       |
| TestInt    | int(11)      | NO   |     | NULL    |       |
| TestDouble | double       | NO   |     | NULL    |       |
| Testbool   | tinyint(1)   | NO   |     | NULL    |       |
| TestDate   | date         | NO   |     | NULL    |       |
+------------+--------------+------+-----+---------+-------+

另外,应该注意我可以使用这些值运行参数化查询,它会工作得很好。只有当我去手动创建查询时才发现这是一个问题。

最佳答案

从这个 SQL Fiddle 可以看出,您的架构或语法没有任何问题。

我的猜测是您一次运行多个语句并且没有正确分隔每个语句。例如:

INSERT INTO testtable
VALUES ( 'testvalue' , 12345678, 123.04, 0, '1950-01-03' )

INSERT INTO testtable
VALUES ( 'testvalue' , 12345678, 123.04, 0, '1950-01-03' )

会导致错误。然而:

INSERT INTO testtable
VALUES ( 'testvalue' , 12345678, 123.04, 0, '1950-01-03' ); --End statement with ;

INSERT INTO testtable
VALUES ( 'testvalue' , 12345678, 123.04, 0, '1950-01-03' );

...将运行良好。也有可能您在某个地方有一个未关闭的杂散开引号,导致您的部分语句成为另一个字符串常量的结尾部分。 确切地验证您正在运行的是什么,因为您发布的代码将按原样正常工作。

关于mysql - SQL - ',' 附近的语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12418027/

相关文章:

sql - VB6将文件路径插入SQL FROM子句

sql-server - Azure/Powershell : Checking to see if a SQL Server exists

PHP/Mysql 数据库填充的下拉列表吐出索引号而不是字符串值

mysql - SQL仅选择列上具有最大值的行

sql - 验证每次登录的每条记录是否具有相同的值

sql - IsEmpty 函数类似于 SQL Server 中的 ISNULL?

android - 如何在 sql server 中编写一个 tigger 来向 android 手机发送推送通知 (GCM)?

mysql - 复杂的MYSql触发器

使用 LIKE 处理 2 个表的 MySQL UPDATE 语句需要数十年时间

sql - 更新表变量