2017-12-21 10 views
0

현재 SQL 데이터베이스 (MariaDB) 테이블에 몇 개의 더미 값을 삽입하는 python 스크립트를 구현하려고합니다. 나는 라즈베리 파이에 스트레치 OS를 사용하고 있습니다.데이터가 mySQL 테이블에 삽입되지 않았습니다. (MariaDB)

먼저 MariaDB의 기존 데이터베이스에 테이블을 만들었습니다.

MariaDB [testdb]> CREATE table testdbtable (col1 char(1), col2 char(1), col3 char(1)); 
Query OK, 0 rows affected (0.12 sec) 

내가 만든 테이블로 testdbtable 볼 수 있습니다 show tables; 사용. show columns from testdbtable;를 사용

+------------------+ 
| Tables_in_testdb | 
+------------------+ 
| testdbtable  | 
+------------------+ 
1 row in set (0.00 sec) 

내가 얻을 :

+-------+---------+------+-----+---------+-------+ 
| Field | Type | Null | Key | Default | Extra | 
+-------+---------+------+-----+---------+-------+ 
| col1 | char(1) | YES |  | NULL |  | 
| col2 | char(1) | YES |  | NULL |  | 
| col3 | char(1) | YES |  | NULL |  | 
+-------+---------+------+-----+---------+-------+ 
3 rows in set (0.00 sec) 

난 다음 파이썬 스크립트를 생성 :

#!/usr/bin/python 
import mysql.connector as mariadb 

mariadb_connection = mariadb.connect(user='root', password='', database='testdb') 

cursor = mariadb_connection.cursor() 

cursor.execute("INSERT INTO testdbtable(col1, col2, col3) VALUES ('a', 'b', 'c')"); 

mariadb_connection.close() 

이 스크립트는 오류없이 터미널에서 실행됩니다. 내가 터미널에서 MariaDB를 실행할 때, 나는 더미 값이 표시되지 않는 (즉, A, B, C) 내 스크립트에서이 테이블에 삽입 : 다른 사람이 나에게 어떤 조언을 줄 수 있다면 나는 감사

MariaDB [testdb]> select * from testdbtable; 
Empty set (0.00 sec) 

내가 대본에서 잘못했을 수도있는 것은 무엇입니까?

답변

2

변경 사항을 적용해야합니다. 이 문서

https://mariadb.com/resources/blog/how-connect-python-programs-mariadb

cursor.execute("INSERT INTO testdbtable(col1, col2, col3) VALUES ('a', 'b', 'c')"); 

mariadb_connection.commit() 
+0

덕분에 danielarend하세요! 'mariadb_connection.commit()을 사용하면이 문제가 해결되었습니다. 나는 또한 처음에는 mariaDB에 자동 커밋이있을 것이라는 인상을 받았다. – Craver2000

+0

오, 그건 파이썬 커넥터에 좋지 않습니다. 'autocommit = OFF'를 싫어하는 이유입니다 - 사용자를이 트랩으로 유도하는 모드로 기본 설정되어 있습니다. –