专栏首页技术综合mysql遇到的问题

mysql遇到的问题

1.多表关联查询

模型图

1)查询语句

    SELECT ud.uid,u.username,u.`password`,u.email,d.devicename,d.devicetype,`data`.param1,`data`.param2,`data`.param3,`data`.param4,`data`.time
    FROM device d
    LEFT JOIN user_device ud on d.id=ud.did
    LEFT JOIN user u on u.id=ud.uid
    LEFT JOIN `data` on `data`.did=d.id

2)查询结果

查询结果

2.mysql修改表结构 报 1833错误

先将外键配置删除,再更新表结构,然后再把外键添加回来即可 这也说明,建立关联前,要把表结构设计好,检查好,,,

3.mysql防止插入重复

由于我插入的是关联表,两个字段都是外键,而且,两个字段需要又重复,只是两个结合不能有重复,所以只能想到使用select where来判断

    INSERT  INTO user_device (
            uid,did
    )SELECT
            (
                    SELECT id 
                    FROM user
                    WHERE user.username="zzes"),
            (
                    SELECT id
                    FROM device
                    WHERE device.devicename="orange pi")
    FROM DUAL
    WHERE NOT EXISTS(
            SELECT uid,did
            FROM user_device
            WHERE uid=(
                    SELECT id 
                    FROM user
                    WHERE user.username="zzes")
            AND
                  did=(
                    SELECT id
                    FROM device
                    WHERE device.devicename="orange pi")
    ) 

4.插入前判断外键是否存在

插入数据前,判断设备id是否存在,不存在就不插入

设备数据表

设备表

    INSERT `data`(did,param1,param2,param3,param4) 
    SELECT 5,23,44,1,1 FROM device WHERE device.id=5

5.MySQL 1215 Cannot add foreign key constraint 错误解决办法

外键数据格式和相对于的另一个表的主键格式不一样导致的,改成相同的格式和length即可。。。

6.取出正数指定个数数据

SELECT mobile FROM doctor ORDER BY  id  LIMIT 1'

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 搭建简易的物联网服务端和客户端-DCloud手机端(十)

    1)介绍 官方介绍:最接近原生APP体验的高性能前端框架 网址:http://dev.dcloud.net.cn/mui/

    治电小白菜
  • 搭建简易的物联网服务端和客户端-Maibu显示(九)

    2)官方开发者中心 http://dev.maibu.cc/developer/index_login.do

    治电小白菜
  • 搭建简易的物联网服务端和客户端-Nodejs_net(二)

    治电小白菜
  • Mybatis的dao层实现 接口代理方式实现规范+plugins-PageHelper

    Mapper接口开发只需要程序员编写Mapper接口而不用具体实现其代码(相当于我们写的Imp实现类)

    一只胡说八道的猴子
  • 常用的Hql语句

    shirayner
  • 在项目中使用Mybatis

    4.include:有时候两个方法要返回的字段都一样或者where子句一样,这样为了避免重复写代码,就抽出来用include

    三哥
  • Java后端开发猿不可不知的,Mybatis几种使用方式总结

    三哥
  • AnnotationProcessor实战:实现ButterKnife的findViewById方法

    要实现findViewById,需要四个参数(控件类型,控件变量名,宿主view(通常是activity,我们一般省去),以及控件id) BindView 通...

    提莫队长
  • 一个R脚本解决某类功能基因(比如m6A甲基化)临床预后模型分析流程

    我按照上面文章思路,写了TCGA数据分析部分的代码,当然模拟的数据不是文章的肿瘤数据,数据是TCGA-STAD转录组和临床的数据,分析的基因是我随便找的基因,所...

    DoubleHelix
  • Kafka 单节点单Kafka Broker集群

    kongxx

扫码关注云+社区

领取腾讯云代金券