4

これをデータベースに入れようとしています。すべての行が正しいです。自動インクリメントのInt値である「Id」を除いて、各行も文字列/テキストです。

ただし、列数が行1の値数と一致しないという予期しないエラーが発生します。クエリの何が問題になっていますか?

INSERT INTO  `world2_main`.`Messages` (
`Id` ,
`ToId` ,
`FromId` ,
`Subject` ,
`Message` ,
`Read` ,
`Original Sender` ,
`Date`
)
VALUES (
NULL,  '3611',  '156',  'You are so...',  'Cool.',  '0',  '3611'  '1338590308');
4

4 に答える 4

10

よくIdは自動インクリメントのint値であり、nullを入力します。

ただやる

INSERT INTO  `world2_main`.`Messages` (
`ToId` ,
`FromId` ,
`Subject` ,
`Message` ,
`Read` ,
`Original Sender` ,
`Date`
)
VALUES (  '3611',  '156',  'You are so...',  'Cool.',  '0',  '3611'  '1338590308');

編集:実際には、3611の後にコンマが欠落しているだけでした。しかし、idの挿入を避けることは依然として良いことです。

INSERT INTO  `world2_main`.`Messages` (
    `ToId` ,
    `FromId` ,
    `Subject` ,
    `Message` ,
    `Read` ,
    `Original Sender` ,
    `Date`
    )
    VALUES (  '3611',  '156',  'You are so...',  'Cool.',  '0',  '3611',  '1338590308');
于 2012-06-01T22:47:36.333 に答える
5

また、挿入したいテーブルにトリガーがあり、そのトリガーに列と値が一致しない別の挿入ステートメントがある場合、「列数が行の値数と一致しません」というエラーがスローされることも発見しました。 。

于 2015-06-29T14:17:45.457 に答える
2

異なる数のパラメーターを定義していて、おそらく異なる数のパラメーターを渡している可能性があります。

あなたが持っているかもしれません:

INSERT INTO `buyers`(`key1`,  `key2` )
VALUES (value1,value2,value3 );

INSERTINTOの引数の数がVALUESよりも多い

于 2019-04-19T21:15:43.363 に答える
2

3つのことを覚えておいてください:

  1. パラメータの数は一致する必要があります
  2. 自動インクリメントに注意する必要があります
  3. (これは私の問題でした)複数の属性を挿入する場合

これをしないでください-

insert into agent(eid, ename, email, phone, score) values(
    (2, 'b', 'b', 5, 3),
    (1, 'a', 'a', 5, 3)
   );

代わりにこれを行う必要があります

insert into agent(eid, ename, email, phone, score) values
    -> (1, 'a', 'a', 5, 3),
    -> (2, 'b', 'b', 5, 3);

ありがとう

于 2020-04-16T20:54:44.383 に答える