繁体   English   中英

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

[英]SQL - Syntax error near ','

我不能为我的生活弄清楚为什么这个查询无论我尝试哪个本地数据库都无法工作(oracle,mysql,microsoft sql)。

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

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

有了MySQL,我得到了

您在第2行的“12345678,123.04,0,”附近的SQL语法中出错。

我试过玩它,我看过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' );

......会好起来的。 你也有可能在一个没有被关闭的地方有一个流浪的开放引用,导致你的一部分语句成为另一个字符串常量的结尾部分。 确切地验证您正在运行的内容,因为您发布的代码将按原样正常运行。

值的格式取决于列的dataType,但另一方面始终使用'int dataType包装值

尝试

INSERT INTO testtable
VALUES ( 'testvalue' , '12345678', '123.04', '0', '1950-01-03' );
INSERT INTO testtable(column1,column2,column3,column4,column5) 
VALUES ( 'testvalue' , 12345678, 123.04, 0, '1950-01-03' )
INSERT INTO testtable (TestString,TestInt,TestDouble,Testbool,TestDate ) 
VALUES ( 'testvalue' , '12345678', '123.04', '0', '1950-01-03' )

尝试这个...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM