sqlalchemy插入数据到mysql异常

1. 插入中文报错:

在数据库名称后面添加?charset=utf8
engine = create_engine("mysql+pymysql://root:[email protected]/data?charset=utf8", echo=True)

2. 正常插入,但是提示以下警告:

2018-06-06 16:28:39,789 INFO sqlalchemy.engine.base.Engine SHOW VARIABLES LIKE 'sql_mode'
2018-06-06 16:28:39,790 INFO sqlalchemy.engine.base.Engine {}
D:\PythonProjects\venv\lib\site-packages\pymysql\cursors.py:170: Warning: (1366, "Incorrect string value: '\\xD6\\xD0\\xB9\\xFA\\xB1\\xEA...' for column 'VARIABLE_VALUE' at row 480")
  result = self._query(query)

代码如下:

from sqlalchemy import Column,Integer,String,DECIMAL,create_engine,DateTime
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class Product(Base):
    __tablename__ = 'cj_product_test'
    id = Column(Integer,primary_key=True,autoincrement=True)
    original_id = Column(String(255))
    product_name = Column(String(255))
    def __repr__(self):
        return "<Product(id='%d', original_id='%s', product_name='%s')>" % (self.id, self.original_id, self.product_name)

# 插入中文会报错,需要在数据库名称后面添加?charset=utf8
engine = create_engine("mysql+pymysql://root:[email protected]/data?charset=utf8", echo=True)
Product.metadata.create_all(engine)
DBSession = sessionmaker(bind=engine)
product = Product(original_id='432143',product_name='施华洛世奇')
session = DBSession()
session.add(product)
session.commit()
session.close()

MySQL自生的一个BUG:
https://www.cnblogs.com/pengyusong/p/6008936.html
https://bugs.mysql.com/bug.php?id=82414

原文地址:https://www.cnblogs.com/ScnuWang/p/9149374.html

时间: 2024-07-31 08:52:36

sqlalchemy插入数据到mysql异常的相关文章

java插入数据至mysql数据库报错:check the manual that coresponds to your mysql server version for the right syntax to use near &#39;condition)values...解决方案

MySQL5.X(本地数据库) 使用java向表中插入数据时,每次数据库更新,pstm.executeUpdate();就会跳到IO报错,提示原因是sql语法有问题,如题可见 当测试插入数据不含condition字段时,插入成功,尝试更名为conDition时,仍报错 解决方案: 更改condition为conDi,原因可能时因为condition为数据库或java关键字不能使用,更名后不再受影响,插入成功. java插入数据至mysql数据库报错:check the manual that c

Python 之 sqlalchemy插入数据

表结构: 插入数据代码展示 #Author Kang import sqlalchemy from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column,Integer,String from sqlalchemy.orm import sessionmaker #创建对象的基类: Base = declarativ

Python使用pyMysql模块插入数据到mysql的乱码解决

1.初步安装mysql,插入中文字符,出现的???的形式 终端提示: pymysql.err.InternalError: (1366, "Incorrect string value: '\\xE4\\xBD\\xA0\\xE5\\xA5\\xBD' for 2.参考博文: https://www.cnblogs.com/houqi/p/5713176.html https://www.cnblogs.com/zknublx/p/5953052.html 3.进入mysql终端查看 show

JAVA插入数据到MySql少了8小时

这个问题,真的是找了很久. 之前以为是mysql的timezone有问题.根据网上的方法,把timezone改了,还是不起作用. 然后以为是java的问题,但试来试去java也不存在timezone不对的问题. 最后,竟然是mysql连接字符串的问题,连接字符串上多了一个?servertimezone=utc.就是这个东西,搞了我一晚上. 特此记录一下.

【Python】批量插入数据到MySQL

sql_insert = "insert into spring_user(id,nickname) values(%s,%s)" ----待补充 原文地址:https://www.cnblogs.com/bashaowei/p/8629466.html

spark 插入数据到mysql时遇到的问题 org.apache.spark.SparkException: Task not serializable

报错问题:Exception in thread "main" org.apache.spark.SparkException: Task not serializableCaused by: java.io.NotSerializableException: org.apache.commons.dbcp2.PoolingDataSource$PoolGuardConnectionWrapper 出错的代码: def saveMonthToMysql(everymonth_avg:R

Python操作mysql之插入数据

之前有写过一篇python查询mysql数据的文章,今天写通过python插入数据到mysql数据库. 1.先建库,建表,建用户 mysql> create database top_ten; mysql> use top_ten mysql> create table log (id int PRIMARY KEY  AUTO_INCREMENT, ip char(20), url char(30), status int, total int) charset=utf8; mysql

MYSQL中插入数据时出现的问题:

问题: mysql> insert tdb_goods (goods_name,goods_cate,brand_name,goods_price,is_show,is_saleoff) VALUES('Y400N 14.0英寸笔记本','笔记本','联','3990',default,default); ERROR 1366 (HY000): Incorrect string value: '\xB4\xE7\xB1\xCA\xBC\xC7...' for column 'goods_name

MySQL批量插入数据的几种方法

最近公司要求测试数据库的性能,就上网查了一些批量插入数据的代码,发现有好几种不同的用法,插入同样数据的耗时也有区别 别的先不说,先上一段代码与君共享 方法一: package com.bigdata; import java.sql.Connection; import java.sql.Driver; import java.sql.DriverManager; import java.sql.PreparedStatement; public class TestBigData { /**