집 >데이터 베이스 >MySQL 튜토리얼 >Bash 스크립트에서 MySQL에 데이터를 삽입할 때 '열 개수가 값 개수와 일치하지 않습니다' 오류를 수정하는 방법은 무엇입니까?
MySQL 서버에 연결하고 텍스트 파일의 데이터를 삽입하는 것을 목표로 하는 Bash 스크립트를 생성했습니다. 그러나 스크립트 실행 중 오류가 발생했습니다. 특히:
ERROR 1136 (21S01) at line 1: Column count doesn't match value count at row 1
문제는 명령 구조에 있습니다.
echo "INSERT INTO test (IP,MAC,SERVER) VALUES ('cat test.txt');" | mysql -uroot -ptest test;
이 명령은 본질적으로 삽입을 시도합니다. test.txt 파일의 전체 내용을 단일 값으로 테스트 테이블에 추가합니다. 테스트 테이블에 3개의 열(IP, MAC, SERVER)이 있으므로 값 수(1)와 열 수(3)가 일치하지 않습니다.
이 문제를 해결하려면 다음을 수행하십시오. 텍스트 파일의 각 줄을 데이터베이스에 삽입할 별도의 값 집합으로 처리하도록 Bash 스크립트를 수정해야 합니다. 수정된 스크립트 버전은 다음과 같습니다.
#!/bin/bash inputfile="test.txt" cat $inputfile | while read ip mac server; do echo "INSERT INTO test (IP,MAC,SERVER) VALUES ('$ip', '$mac', '$server');" done | mysql -uroot -ptest test;
수정된 스크립트:
파일 읽기 및 MySQL 명령을 별도로 실행하면 텍스트 파일의 각 줄이 데이터베이스의 고유한 행으로 올바르게 삽입되었는지 확인할 수 있습니다.
위 내용은 Bash 스크립트에서 MySQL에 데이터를 삽입할 때 '열 개수가 값 개수와 일치하지 않습니다' 오류를 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!