簡體   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