【问题标题】:Data not inserted into table of mySQL (MariaDB)数据未插入到 mySQL (MariaDB) 表中
【发布时间】:2017-12-21 15:19:34
【问题描述】:

我目前正在尝试实现一个 python 脚本,它将几个虚拟值插入我的 SQL 数据库 (MariaDB) 的表中。我在 Raspberry Pi 上使用 Stretch OS。

我首先在 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)

如果有人可以就我在脚本中可能做错的地方给我任何建议,我将不胜感激?

【问题讨论】:

    标签: python mysql database raspberry-pi mariadb


    【解决方案1】:

    我猜你需要提交更改。看这篇文章

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

    【讨论】:

    • 谢谢丹尼尔! Using mariadb_connection.commit() 解决了这个问题。我最初的印象也是mariaDB中会有自动提交。
    • 哦,这对 Python 连接器很不利。这就是我讨厌autocommit=OFF 的原因——它默认的模式会引导用户进入这个陷阱。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-27
    • 2013-05-04
    • 2014-06-21
    • 2014-04-04
    • 2016-10-26
    • 2022-10-01
    相关资源
    最近更新 更多