>데이터 베이스 >MySQL 튜토리얼 >Bash를 사용하여 MySQL에 데이터를 삽입할 때 '열 개수가 값 개수와 일치하지 않습니다' 오류를 수정하는 방법은 무엇입니까?

Bash를 사용하여 MySQL에 데이터를 삽입할 때 '열 개수가 값 개수와 일치하지 않습니다' 오류를 수정하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-18 08:23:10972검색

How to Fix

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.