我终其一生都无法弄清楚为什么无论我尝试使用我的本地数据库中的哪一个(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/