집 >데이터 베이스 >MySQL 튜토리얼 >Bash를 사용하여 MySQL에 데이터를 삽입할 때 '열 개수가 값 개수와 일치하지 않습니다' 오류를 수정하는 방법은 무엇입니까?
MySQL에 값을 삽입하기 위한 Bash 스크립트 솔루션
bash 스크립트를 사용하여 MySQL에 값을 삽입하려고 하면 사용자에게 다음과 같은 오류가 발생할 수 있습니다. 열 개수와 값 개수가 일치하지 않습니다. 이 오류는 일반적으로 입력 데이터 형식이 데이터베이스 테이블의 예상 열과 일치하지 않을 때 발생합니다. 다음 예를 고려하십시오.
아래 스크립트는 텍스트 파일의 값을 'test'라는 MySQL 테이블에 삽입하는 것을 목표로 합니다.
#!/bin/bash echo "INSERT INTO test (IP,MAC,SERVER) VALUES ('cat test.txt');" | mysql -uroot -ptest test;
그러나 실행 시 스크립트는 오류를 반환합니다. :
ERROR 1136 (21S01) at line 1: Column count doesn't match value count at row 1
이 문제를 해결하려면 'test.txt' 텍스트 파일의 데이터 형식을 확인하세요. 데이터 형식이 올바르지 않으면 MySQL 테이블의 예상 열 수와 삽입되는 값이 일치하지 않게 됩니다.
다음은 다른 접근 방식을 취하는 수정된 스크립트입니다.
#!/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;
이 스크립트는 텍스트 파일의 각 줄을 반복하여 각 열(IP, MAC, SERVER)의 값을 추출합니다. 그런 다음 각 행에 대한 SQL 문을 구성하고 이를 MySQL 명령에 파이프하여 열 개수와 값 개수가 일치하는지 확인합니다.
스크립트를 수정하고 텍스트 파일의 입력 데이터 형식을 적절하게 지정하면 다음을 수행할 수 있습니다. bash 스크립트를 사용하여 MySQL 테이블에 값을 성공적으로 삽입했습니다.
위 내용은 Bash를 사용하여 MySQL에 데이터를 삽입할 때 '열 개수가 값 개수와 일치하지 않습니다' 오류를 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!