- 浏览: 1224361 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (883)
- Spring (101)
- Swing (1)
- Mysql (21)
- Js (59)
- Jsp (2)
- Hibernate (19)
- Myeclipse (5)
- SqlServer 2000 (2)
- poi (15)
- Java (70)
- SSH (12)
- Html (47)
- Fusion Charts (1)
- C\C++ (2)
- 汇编 (36)
- Jquery (37)
- Struts2 (6)
- Ubuntu (16)
- powerDesinger (4)
- Jboss (3)
- JAX-RS (13)
- JAXB (5)
- JAX-WS (11)
- JMS (4)
- WebSocket (8)
- PHP (16)
- Flash (1)
- maven (3)
- Oracle (8)
- HttpClient (6)
- sqlserver (19)
- svn (5)
- Tomcat (3)
- Jdbc (3)
- EsayUi (11)
- 微信公众平台 (19)
- IIS (2)
- Freemarker (11)
- Comet (1)
- Spring MVC (85)
- JBoss Seam (3)
- 二维码 (9)
- Spring Security (4)
- Ehcache (3)
- Apache Shiro (7)
- jackson (16)
- JPA (8)
- jcaptcha (2)
- RSA (2)
- Ajax (6)
- 跟我学Shiro (0)
- Spring4 (19)
- 跟我学spring3 (0)
- css (32)
- excel (4)
- Filter (3)
- 微信公众帐号开发教程 (0)
- Android (6)
- log4j (6)
- 淘宝接口 (17)
- 支付集成 (3)
- 单点登录 (3)
- Html5 (27)
- 移动平台前端 (3)
- Linux (44)
- FusionCharts (27)
- Json Jackson Xml (5)
- 方培工作室-微信开发 (0)
- Apache与Tomcat与IIS整合 (10)
- Nginx (17)
- webService (2)
- apache (4)
- lucene (3)
- lodop (2)
- Shiro (3)
- zTree (2)
- ireport (12)
- Servlet3.0 (5)
- 前端美工 (19)
- AngularJS (1)
- C#开发微信门户及应用 (0)
- Shell (3)
- bat脚本 (16)
- Bootstrap (26)
- Less (10)
- photoshop (6)
- Redis (6)
- Mongodb (10)
- MyBatis (3)
- 数据结构 (0)
- 读写分离-主从复制 (0)
- JFinal (0)
- 百度地图api (3)
- hadoop-hbase-hive-spark (3)
- WebStorm (2)
- Quartz (5)
- ios (0)
- Mina (8)
- Android Studio (4)
- Ratchet教程 (0)
- 移动端重构系列 (1)
- cubic-bezier贝塞尔曲线CSS3动画工具 (1)
- nginx+tomcat+memcached集群 (0)
- 集群 (0)
- ZooKeeper (3)
- Dubbo (0)
- vpn (0)
- kafka (0)
- JVM垃圾回收机制 (0)
- 微信小程序 (0)
- Lua (0)
- Hystrix (0)
- Vue.js (0)
- mycat (0)
- Openresty (0)
- springBoot (0)
- 新分类 (0)
- guava (0)
- 大数据 (0)
- Sentinel (0)
最新评论
-
JackMacing:
中文怎么解决?
SpringMVC与iReport(JasperReports) 5.6整合开发实例 -
18335864773:
用pageoffice把.可以实现在线的文档操作.直接转pdf ...
转:使用jasperreport动态生成pdf,excel,html -
linhao0907:
推荐一款轻量开源的支付宝组件:https://github.c ...
关于Alipay支付宝接口(Java版) -
songronghu:
太好了,非常有用,谢谢分享~
Java ConcurrentModificationException 异常分析与解决方案 -
wzwahl36:
http://www.atool.org/json2javab ...
Java下利用Jackson进行JSON解析和序列化
一般是多表一起插入数据的时候使用
例如,一个表记录用户信息,另一个表记录用户所对应的权限,两个表均使用用户表的ID来关联
你新添加用户的时候,肯定需要一次性插入用户表和权限表这两个表。你插入完用户表后,ID字段的值才是已知的,这个时候在存储过程中就可以写成
INSERT INTO 用户表() VALUES ()
DECLARE @ID AS INT
SELECT @ID = @@Identity
INSERT INTO 权限表 (UserID, ……) VALUES (@ID, ……)
执行完插入语句后,再select @@identity 获取新增ID值
别担心在你插入后别人再插入你提取的会是别人的值.
@@identity 只返回你的这第链接上升成的最新递增值,根别人没关系
CREATE DATABASE folder
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE utf8_general_ci;
use folder;
set NAMES gb2312;
//desc和数据库关键字有冲突
create table t_dep
(
id int auto_increment not null primary key,
name varchar(40) not null,
pass varchar(40) not null,
depdes varchar(40)
);
create table t_box
(
id int auto_increment not null primary key,
depid int not null,
boxname varchar(40) not null,
boxdesc varchar(40)
);
create table t_folder
(
id int auto_increment not null primary key,
boxid int not null,
foldername varchar(40) not null,
folderdesc varchar(40)
);
create table t_type
(
id int auto_increment not null primary key,
folderid int not null,
typename varchar(40) not null,
typedesc varchar(40)
);
create table t_form
(
id int auto_increment not null primary key,
typeid int not null,
formname varchar(40) not null,
formdesc varchar(40),
formimage varchar(100)
);
22.常用插入、修改、删除语句
插入记录:insert into teacher values('','glchengang','深圳一中','1976-10-10');
修改记录:update mytable set single=′y′ where name=′abccs′;
删除记录:delete from mytable where name=′abc′;
MySQL级联
首先,目前在产品环境可用的MySQL版本(指4.0.x和4.1.x)中,只有InnoDB引擎才允许使用外键,所以,我们的数据表必须使用InnoDB引擎。
下面,我们先创建以下测试用数据库表:
CREATE TABLE `roottb` ( `id` INT(11) UNSIGNED AUTO_INCREMENT NOT NULL,
`data` VARCHAR(100) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)) TYPE=InnoDB;
CREATE TABLE `subtb` ( `id` INT(11) UNSIGNED AUTO_INCREMENT NOT NULL,
`rootid` INT(11) UNSIGNED NOT NULL DEFAULT '0',
`data` VARCHAR(100) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
INDEX (`rootid`),
FOREIGN KEY (`rootid`) REFERENCES roottb(`id`) ON DELETE CASCADE) TYPE=InnoDB;
注意:
1、必须使用InnoDB引擎;
2、外键必须建立索引(INDEX);
3、外键绑定关系这里使用了“ ON DELETE CASCADE”,意思是如果外键对应数据被删除,将关联数据完全删除,更多信息请参考MySQL手册中关于InnoDB的文档;
好,接着我们再来插入测试数据:
INSERT INTO `roottb` (`id`,`data`) VALUES ('1', 'test root line 1'), ('2', 'test root line 2'), ('3', 'test root line 3');INSERT INTO `subtb` (`id`,`rootid`,`data`) VALUES ('1', '1', 'test sub line 1 for root 1'), ('2', '1', 'test sub line 2 for root 1'), ('3', '1', 'test sub line 3 for root 1'), ('4', '2', 'test sub line 1 for root 2'), ('5', '2', 'test sub line 2 for root 2'), ('6', '2', 'test sub line 3 for root 2'), ('7', '3', 'test sub line 1 for root 3'), ('8', '3', 'test sub line 2 for root 3'), ('9', '3', 'test sub line 3 for root 3');
我们先看一下当前数据表的状态:
mysql>; show tables;+----------------+| Tables_in_test |+----------------+| roottb || subtb |+----------------+2 rows in set (0.00 sec)mysql>; select * from `roottb`;+----+------------------+| id | data |+----+------------------+| 1 | test root line 1 || 2 | test root line 2 || 3 | test root line 3 |+----+------------------+3 rows in set (0.05 sec)mysql>; select * from `subtb`;+----+--------+----------------------------+| id | rootid | data |+----+--------+----------------------------+| 1 | 1 | test sub line 1 for root 1 || 2 | 1 | test sub line 2 for root 1 || 3 | 1 | test sub line 3 for root 1 || 4 | 2 | test sub line 1 for root 2 || 5 | 2 | test sub line 2 for root 2 || 6 | 2 | test sub line 3 for root 2 || 7 | 3 | test sub line 1 for root 3 || 8 | 3 | test sub line 2 for root 3 || 9 | 3 | test sub line 3 for root 3 |+----+--------+----------------------------+9 rows in set (0.01 sec)
嗯,一切都正常,好,下面我们要试验我们的级联删除功能了。
我们将只删除roottb表中id为2的数据记录,看看subtb表中rootid为2的相关子纪录是否会自动删除:
mysql>; delete from `roottb` where `id`='2';Query OK, 1 row affected (0.03 sec)mysql>; select * from `roottb`;+----+------------------+| id | data |+----+------------------+| 1 | test root line 1 || 3 | test root line 3 |+----+------------------+2 rows in set (0.00 sec)mysql>; select * from `subtb`;+----+--------+----------------------------+| id | rootid | data |+----+--------+----------------------------+| 1 | 1 | test sub line 1 for root 1 || 2 | 1 | test sub line 2 for root 1 || 3 | 1 | test sub line 3 for root 1 || 7 | 3 | test sub line 1 for root 3 || 8 | 3 | test sub line 2 for root 3 || 9 | 3 | test sub line 3 for root 3 |+----+--------+----------------------------+6 rows in set (0.01 sec)
嗯,看subtb表中对应数据确实自动删除了,测试成功。
结论:在MySQL中利用外键实现级联删除成功!
---------------------------------------------------------------------------------------------------------------
user表:
create table user
(
userid integer not null auto_increment primary key,
username varchar(12) not null
)
type=innodb;
password表:
create table password
(
userid integer not null,
password varchar(12) not null,
index (userid),
foreign key (userid) references user (userid)
on delete cascade
on update cascade
)
type=innodb;
1、MySQL支持外键约束,并提供与其它DB相同的功能,但表类型必须为 InnoDB
2、建外键的表的那个列要加上index.
发表评论
-
ERROR 1055 (42000): Expression #1 of ORDER BY clause is not in GROUP BY..sql_mod
2018-11-24 10:19 0MySQL错误:Expression #1 of OR ... -
【解决方案】MySQL-5.7.9 服务无法启动-“NET HELPMSG 3534”
2017-07-02 16:35 0其实理论上现在 ... -
(亲测可用)mysql数据导入报错:Got a packet bigger than‘max_allowed_packet’bytes的问题
2017-06-23 10:44 0数据导入报错:Got a packet bigger ... -
mysql数据库source命令导入备份报错乱码的问题
2017-06-13 15:11 0对于一般的比较小的数据库备份导入,可能用phpmya ... -
易百教程
2017-06-07 14:00 0http://www.yiibai.com/lua/l ... -
(亲测可用) MYSQL迁移或者升级的故障解决大全
2017-06-05 19:21 0http://www.w2bc.com/article ... -
MYSQL迁移或者升级的故障解决大全
2017-06-05 17:36 0https://wenku.baidu.com/vi ... -
centos修改mysql数据库路径
2017-06-05 13:52 0http://www.pc811.com/6/1/26 ... -
mysql中Illegal mix of collations for operation “UNION”错误的解决方法
2017-02-22 15:08 0在Mysql中,用union联合多表时,发现如果 ... -
MySQL 5.7的JSON数据类型详解介绍
2017-02-10 17:50 0http://www.111cn.net/datab ... -
MySQL分库分表的实现过程详解介绍
2017-02-10 17:47 0http://www.111cn.net/datab ... -
让MySQL支持emoji表情
2017-01-04 17:02 12660http://www.cnblogs.com/suif ... -
Java分布式数据源分表分库、读写分离应用层框架:j360-datasource
2016-11-21 16:11 0https://github.com/xumin ... -
Mysql分库分表方案
2016-11-19 01:38 0Mysql分库分表方案 ... -
Spring+Ibatis数据库水平分库
2016-11-19 01:32 01.引言 笔者最 ... -
myql 查询树形表结果:说说、说说的述评、评论的回复
2016-10-08 12:27 0myql 查询树形表结果:说说、说说的评论、评论的回复 ... -
升级mysql5.7.9后数据的恢复Table storage engine for 'supplier' doesn't have this option
2016-09-22 12:50 0这两天把mysql升级到5.7.9了,恢复数据时出了2 ... -
MySQL5.7重置root密码
2016-09-11 23:25 0版本更新 缘故,好多网上的教程都不适用了,甚至连官网 ... -
【bug记录】mysql5.7.9-win64 的3534问题
2016-09-11 23:05 0今天工作需要重新安装mysql,看到网上最新的是5.7 ... -
MySQL存储引擎--MyISAM与InnoDB区别
2016-09-02 14:27 0http://blog.csdn.net/xifeij ...
相关推荐
在IT领域,数据库设计是至关重要的,特别是在处理地理或地址数据时。本资源提供了一个精心整理的五...通过合理的设计和优化,它能帮助开发者高效地处理和检索精确到村的地址数据,同时减少了潜在的编码错误和乱码问题。
mysql 总结........................................................................................................................................6 1.1 数据库的种类.......................................
MySQL 是一款广泛使用的开源关系型数据库...这些知识点覆盖了 MySQL 的基本操作、权限管理、备份恢复、性能优化和高可用性等方面,是面试中常见的问题。理解并掌握这些知识点对于成为一名合格的 MySQL DBA 至关重要。
在本文中,我们将探讨如何使用jQuery、PHP和MySQL来实现二级...在实际应用中,你可以根据需求扩展这个例子,例如增加更多的级联选项,或者优化数据传输和处理的效率。理解这个过程对于构建复杂的Web应用程序至关重要。
.pdf”,虽然名称含有乱码,但可以推测这可能是孙卫琴的关于Hibernate和Java的书籍,或者是一份关于使用Hibernate与Java的高级教程。这份文档可能涵盖了Hibernate的核心概念,如实体类、配置文件、会话、查询语言...
- Hibernate的多表级联优化:如使用懒加载,缓存策略等。 - Ajax的缺点:如页面局部刷新导致历史记录混乱,SEO问题等。 - Servlet原理:HTTP请求处理,生命周期包括加载、初始化、服务、销毁。 - ArrayList,Vector...
- **外键与级联**:禁止使用外键与级联,一切外键概念必须在应用层解决。 - **OR连接**:尽量避免在WHERE子句中使用OR作为连接条件。 - **模糊查询**:不允许使用%开头的模糊查询。 #### 三、索引规约 1. *...
根据提供的信息,我们可以提炼出与C++Builder及数据库相关的知识点,虽然给定的部分内容看起来像是非相关文本(可能是一些乱码或者诗歌等),但从标题、描述和标签中,我们仍能归纳出以下详细的IT知识内容: ...
{13.5.1}MySQL}{198}{subsection.13.5.1} {13.6}连接池}{199}{section.13.6} {13.6.1}Wrapper}{199}{subsection.13.6.1} {13.7}DAO}{199}{section.13.7} {13.8}java.util.Date与java.sql.Date比较}{200}{...
实例234 设置JavaBean级联属性 293 实例235 动态生成JavaBean 295 实例236 复制JavaBean属性 296 实例237 动态排序JavaBean 298 10.5 其他Commons组件简介 299 实例238 优雅的JDBC代码 299 实例239 结果集与Bean列表...