Данные не вставлены в таблицу MySQL (MariaDB)

0

В настоящее время я пытаюсь реализовать скрипт python, который вставляет пару фиктивных значений в таблицу моей базы данных SQL (MariaDB). Я использую Stretch OS на моей малине Pi.

Сначала я успешно создал таблицу в существующей базе данных в MariaDB.

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

Использование show tables; Я вижу testdbtable в качестве моей созданной таблицы.

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

Использование show columns from testdbtable; Я получил:

+-------+---------+------+-----+---------+-------+
| 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)

Я ценю, может ли кто-нибудь дать мне какие-либо советы о том, что я мог сделать неправильно в моем сценарии?

Теги:
database
mariadb
raspberry-pi

1 ответ

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
    Спасибо Даниеларенд! Using mariadb_connection.commit() решило проблему. Изначально у меня сложилось впечатление, что в mariaDB будет автокоммит.
  • 0
    О, это плохо для разъема Python. По этой причине я ненавижу autocommit=OFF - по умолчанию используется режим, который вводит пользователей в эту ловушку.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню