web-dev-qa-db-ja.com

列カウントが行1の値カウントと一致しません

だから私は他の投稿を読みましたが、この質問はユニークです。したがって、このSQLダンプファイルには、これが最後のエントリとしてあります。

INSERT INTO `wp_posts` VALUES(2781, 3, '2013-01-04 17:24:19', '2013-01-05 00:24:19'.

この値をテーブルに挿入しようとしています...

INSERT INTO `wp_posts` VALUES(5, 5, '2005-04-11 09:54:35', '2005-04-11 17:54:35'

「列カウントが行1の値カウントと一致しません」というエラーが表示されます。そのため、ここで列と行がどのように適用されるかの概念に迷っています。

2781,3は行2781と列3を意味しませんか? 5,5は行5と列5を意味しませんか?

41
user2705462

このエラーは、テーブルwp_postsが列を含むほど多くのデータを提供していないことを意味します。そして今、DBエンジンは、データを配置する列を認識しません。

これを克服するには、入力する列の名前を指定する必要があります。例:

insert into wp_posts (column_name1, column_name2)
values (1, 3)

テーブル定義を調べて、入力する列を確認します。

そしてinsertは、あなたが新しい挿入レコードであることを意味します。既存のものを変更するわけではありません。そのためにupdateを使用します。

48
juergen d
  1. 2つの値または列名の間にカンマがありません
  2. 追加の値または追加の列名を入力します
16
V Kash Singh

新しいトリガーも確認する必要があります。

MySQLはエラーにテーブル名を表示しないので、あなたは本当に不自由なままです。これが実際の例です:

use test;
create table blah (id int primary key AUTO_INCREMENT, data varchar(100));
create table audit_blah (audit_id int primary key AUTO_INCREMENT, action enum('INSERT','UPDATE','DELETE'), id int, data varchar(100) null);
insert into audit_blah(action, id, data) values ('INSERT', 1, 'a');
select * from blah;
select * from audit_blah;
truncate table audit_blah;

delimiter //
/* I've commented out "id" below, so the insert fails with an ambiguous error: */
create trigger ai_blah after insert on blah for each row 
begin 
  insert into audit_blah (action, /*id,*/ data) values ('INSERT', /*NEW.id,*/ NEW.data);
end;//

/* This insert is valid, but you'll get an exception from the trigger: */
insert into blah (data) values ('data1');
10
inanutshellus

VALUESセクションの行セットを括弧で区切らずに複数の行を挿入しようとすると、MySQLは「行1の値カウントと一致しません」も報告します。

INSERT INTO `receiving_table`
  (id,
  first_name,
  last_name)
VALUES 
  (1002,'Charles','Babbage'),
  (1003,'George', 'Boole'),
  (1001,'Donald','Chamberlin'),
  (1004,'Alan','Turing'),
  (1005,'My','Widenius');
6
Sebastian

影響している列名を指定することにより、エラーを解決できます。

> INSERT INTO table_name (column1,column2,column3)
 `VALUES(50,'Jon Snow','Eye');`

値を提供するステートメントの後にのみセミコロンを追加する必要があることに注意してください

2