2017-12-21 14 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) 

私は、Pythonスクリプトを作成しました:

#!/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

ああ、Pythonのコネクターには悪いです。これは私が 'autocommit = OFF'を嫌う理由です。デフォルトでは、ユーザをこのトラップに導くモードになっています。 –

関連する問題