分类 "Database" 下的文章

问题:sqlalchemy.exc.ArgumentError: Mapper mapped class UserTotal->user_total could not assemble any primary key columns for mapped

解决:sqlalchemy的model不能没有primary_key

方法:

class UserTotal(Base):
    __tablename__ = "user_total"

    dt = Column(Date, nullable=False)
    recent_days = Column(Integer, nullable=False)
    login_num_count = Column(BigInteger)
    page_count = Column(BigInteger)

    __mapper_args__ = { 
        'primary_key': [dt, recent_days]
    }

问题:windows下如何自动安装mysql8,而不需要配置环境?

解决:使用官方的安装程序

方法:

下载地址:
https://dev.mysql.com/downloads/installer/
下载MySQL Installer 8.0.27,这是安装程序,点击就能安装
如果下载MySQL Community Server 8.0.27则需要手动配置文件,太麻烦,不推荐
建议下载mysql-installer-community-8.0.27.1.msi
下载好后,双击,点击只安装server,即第二个选项

问题:mysql单个字段如何区分大小写?
解决:方法有多种,可以在查询的时候增加binary,也可以修改数据库
方法:
方法一:

select * from some_table where binary str='abc'
select * from some_table where binary str='ABC'

方法二:

ALTER TABLE logtest CHANGE title title VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci;
ALTER TABLE comics CHANGE mhid mhid VARCHAR(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL default '' COMMENT 'mh的id';

阅读全文

问题:Moodle系统添加用户时报错,ERROR 1253 (42000): COLLATION 'utf8mb4_bin' is not valid for CHARACTER SET 'utf8'

解决:debug显示出错误信息,需要修改mysql数据表的编码

方法:

debug的信息显示查询mdl_user表时出错,如下

SELECT 'x' FROM mdl_user WHERE LOWER(email) COLLATE utf8mb4_bin = LOWER('student1@qq.com') AND mnethostid = 1 AND id <> -1 LIMIT 0, 1;

阅读全文