programing

열 수가 행 1의 값 수와 일치하지 않습니다.

randomtip 2023. 1. 15. 12:55
반응형

열 수가 행 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'

"Column count is match value count in row 1"이라는 오류가 표시되므로 여기서 column과 행이 어떻게 적용되는지 잘 모르겠습니다.

Doesn't.2781,3평균 행 2781과 열 3?그리고 하지 않는다5,5평균 5행과 5열?

오류는 테이블만큼 많은 데이터를 제공하지 않음을 의미합니다.wp_posts에는 열이 포함되어 있습니다.이제 DB 엔진은 데이터를 어느 열에 넣어야 할지 알 수 없습니다.

이 문제를 해결하려면 채울 열의 이름을 제공해야 합니다.예를 들어:

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

테이블 정의를 찾아보고 채울 열을 확인합니다.

그리고.insert레코드를 삽입한다는 의미입니다.기존 항목을 수정하지 않습니다.사용하다update그럴 수 있어요.

  1. 두 값 또는 열 이름 사이의 쉼표를 놓쳤습니다.
  2. 추가 값 또는 추가 열 이름을 입력합니다.

새로운 트리거도 고려해야 합니다.

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

또한 다음과 같이 VALUES 섹션에 행 집합을 괄호로 구분하지 않고 여러 행을 삽입하려고 하면 MySQL에서 "Column count does match value count at row 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');

영향을 주는 열 이름을 입력하여 오류를 해결할 수 있습니다.

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

세미 콜론은 값을 제공하는 문 뒤에만 추가해야 합니다.

제 경우 잘못된 이름 테이블을 전달했기 때문에 mysql이 올바른 열 이름을 찾을 수 없었습니다.

언급URL : https://stackoverflow.com/questions/18369252/column-count-doesnt-match-value-count-at-row-1

반응형