• 关于mysql插入数据异常


    今天创建数据库时,在插入数据时出现了几个问题。(首次在LInux环境下创建数据库)

    一个是关于SQL Error [1146] [42S02]: Table 'struts2exec.s_user' doesn't exist

    网上搜查到的帖子如下:

      项目在开发的时候在WINDOWS平台下开发的,开发完了之后在LINUX环境上部署好之后,运行时MySQL数据库报错,提示为某个表不存在之类的错误信息,后来修改了MySQL的配置文件将大小写敏感去掉,问题解决。 

    编辑/etc/my.cnf文件,在[mysqld]节下 添加 lower_case_table_names=1 参数,并设置相应的值 (备注:为0时大小写敏感,为1时大小写不敏感,默认为0)。 

    编辑MySQL安装目录下的my.ini文件,在[mysqld]节下 添加 lower_case_table_names=1(备注:为0时大小写敏感,为1时大小写不敏感,默认为1),可以实现MySql按照建表Sql语句的大小写状态来定义表名。

    在 MySQL 中,数据库和表其实就是数据目录下的目录和文件,因而,操作系统的敏感性决定数据库和表命名的大小写敏感。这就意味着数据库和表名在 Windows 中是大小写不敏感的,而在大多数类型的 Unix/Linux 系统中是大小写敏感的。 

    但是按照教程在my.cnf下并没有mysqld,于是只好在插入数据时严格区分大小写。

    另一个则是关于SQL Error [1054] [42S22]: Unknown column 'xxx' in 'field list

    很显然,这是编码问题,解决方案如下:

    修改表的编码格式

    ALTER TABLE `table` DEFAULT CHARACTER SET utf8;

    但是虽然修改了表的编码格式,但是字段的编码格式并没有修改过来,又发现一条语句,作用是修改字段的编码格式:

    ALTER TABLE `tablename` CHANGE `字段名1` `字段名2` VARCHAR(36) CHARACTER SET utf8 NOT NULL; 

    但是一次只能修改一个字段,还是很麻烦,不方便,最后找到这么一条语句,可以修改整张表的字段:

    alter table `tablename` convert to character set utf8;

  • 相关阅读:
    git提交代码到github步骤
    HTML前端标签
    16-类视图
    15-auth系统与类视图
    14-中间件和上下文处理器
    13-会话技术及表单(cookies和session)
    07-Python Django view 两种return 方法
    10-请求与响应和HTML中的from表单
    09-表关联对象及多表查询
    08-常用查询及表关系的实现
  • 原文地址:https://www.cnblogs.com/lesliehe/p/7965663.html
Copyright © 2020-2023  润新知