2014-12-05 3 views
5

mysql 데이터베이스에 (age int, name TEXT) 두 개의 열이있는 'test'테이블을 만듭니다. Python을 사용하는 Mysql은 자동 증가 ID가있는 레코드를 삽입 할 수 없습니다. 이유가 무엇입니까?

는 그럼 난 (목록) 다음 코드를 사용하여 레코드를 삽입 :

record = [12, 'Tom'] 
cursor.execute("insert into test values(%s,%s)", record) 

위의 코드는 (내가 프로그래밍을위한 파이썬 2.7를 사용) MySQL의에서 작동합니다.

그때 이전 테이블을 삭제하고 CREATE TABLE의 SQL에 다음 코드를 추가하여, 새로운 테이블에 대한 AUTO_INCREMENT P_id 필드를 추가 할 :

P_id int(11) PRIMARY KEY AUTO_INCREMENT, 

그리고 새 테이블 작품과 내가 그것을 발견 mysql에서. 그러나, 나는 동일한 코드를 사용하여 새 레코드를 삽입하려고하면

record = [12, 'Tom'] 
cursor.execute("insert into test values(%s,%s)", record) 

을하지만 그것은 작동하지 않습니다 및 보고서 : I에 의해 P_id의 값을 추가해야처럼

OperationalError: (1136, "Column count doesn't match value count at row 1") 

같습니다 자기? 하지만 자동으로 증가해야합니까? 생략 할 수 있습니까? 저는 mysql에서 상당히 초보자이며 자세한 내용을 알려주십시오.

이것은 StackOverflow의 첫 번째 질문이며 모든 도움에 감사드립니다.

답변

5

사용이 쿼리 :

record = [12, 'Tom'] 
cursor.execute("insert into test (age,name) values(%s,%s)", record) 
+0

당신의 대답은 매우시의 적절하고 대단한 : 같은

insert into test (age,name) values(%s,%s) 

귀하의 코드를 볼 것이다. –

+0

아주 잘 작동합니다. 정말 고마워. 이제는 기본 설정이 모든 필드를 업데이트한다고 가정합니다. 그래서 Stackoverflow에서의 첫 경험. :) –