mysql遇到的问题
时间:2022-07-23
本文章向大家介绍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'
- MySQL 教程
- MySQL 安装
- MySQL 管理与配置
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- mysql order by
- Mysql Join的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- 查看MySQL 元数据
- MySQL 序列 AUTO_INCREMENT
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- MYSQL 函数大全
- MySQL Group By 实例讲解
- MySQL Max()函数实例讲解
- mysql count函数实例
- MYSQL UNION和UNION ALL实例
- MySQL IN 用法
- MySQL between and 实例讲解