1

私の人生では、ローカル データベース (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 構文にエラーがあります。

私はそれで遊んでみました.INSERT INTOの構文についてはW3スクールを見てきました. すべてが良さそうです。どうなり得るか?

ありがとうございました!

編集:

リクエストに応じて: mysql のレイアウトは次のとおりです。

+------------+--------------+------+-----+-------- ----------+
| | フィールド | フィールド タイプ | ヌル | キー | キー | デフォルト | エクストラ |
+------------+--------------+------+-----+-------- ----------+
| | テスト文字列 | varchar(600) | いいえ | | | ヌル | | |
| | TestInt | int(11) | いいえ | | | ヌル | | |
| | テストダブル | ダブル | いいえ | | | ヌル | | |
| | テストブール | tinyint(1) | いいえ | | | ヌル | | |
| | テスト日 | 日付 | いいえ | | | ヌル | | |
+------------+--------------+------+-----+-------- ----------+

また、これらの値を使用してパラメーター化されたクエリを実行でき、問題なく動作することに注意してください。問題があるのは、クエリを手動で作成するときだけです。

4

4 に答える 4

2

この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' );

...うまくいきます。また、閉じられていない場所にオープン クォートがあり、ステートメントの一部が別の文字列定数の末尾部分になっている可能性もあります。投稿したコードはそのままで問題なく動作するため、実行しているものを正確に確認してください。

于 2012-09-14T04:42:01.020 に答える
1

値の形式は列の dataType によって異なりますが、一方で常に値をint dataType'以外でラップします

試す

INSERT INTO testtable
VALUES ( 'testvalue' , '12345678', '123.04', '0', '1950-01-03' );
于 2012-09-14T04:16:06.023 に答える
0
INSERT INTO testtable(column1,column2,column3,column4,column5) 
VALUES ( 'testvalue' , 12345678, 123.04, 0, '1950-01-03' )
于 2012-09-14T04:31:00.790 に答える
0
INSERT INTO testtable (TestString,TestInt,TestDouble,Testbool,TestDate ) 
VALUES ( 'testvalue' , '12345678', '123.04', '0', '1950-01-03' )

これを試して...

于 2012-09-14T05:03:19.263 に答える