mysql 事务类型表的用法
1。两个表必须是
InnoDB表类型
2。使用在外键关系的域必须为索引型(Index)
3。使用外键关系的域必须与数据类型相似
以下是父表和子表的例子:
创建表时同时创建关联
create table `parent`(
`id`
int(11) not null primary key,
`name` varchar(255) not null
) type =
innodb;
create table `child`(
`id` int(11),
`parent_id`
int(11),
index `parend_ind` (`parent_id`),
foreign key(`parent_id`)
references parent(`id`)
on delete
cascade
)type=inndob;
建立表之后建立的关联:
(一定要先创建需要的索引)
ALTER TABLE yourtablename
ADD
[CONSTRAINT symbol] FOREIGN KEY [id] (index_col_name, ...)
REFERENCES
tbl_name (index_col_name, ...)
[ON DELETE {RESTRICT | CASCADE | SET NULL
| NO ACTION}]
[ON UPDATE {RESTRICT | CASCADE | SET NULL | NO
ACTION}]
CONSTRAINT symbol
如果被给出,它在数据库必须是唯一的,如果没有给出则自动创建,
CASCADE:从父表删除或更新且自动删除或更新子表中匹配的行
SET
NULL:从父表删除或更新行,并设置子表中外键列为NULL;
NO
ACTION:意味不采取动作,就是如果有一个相关的外键值在被参考的表里,删除或更新主要键值的企图不被允许进行,InnoDB拒绝对父表的删除或更新操作
RESTRICT:拒绝对父表的删除或更新操作。
SET DEFAULT: 这个动作被解析程序识别,但InnoDB拒绝包含ON
DELETE SET DEFAULT或ON UPDATE SET DEFAULT子句的表定义。
大概用法:
mysqli->autocommit();
//关闭事务自动提交
编写别的代码;
mysqli->commit(); //
提交事务让里面的代码执行
mysqli_rollback(); //不执行里面的代码==>事务回滚
mysql 事务类型表的用法的更多相关文章
- 商品库存“存取设计”,MySQL事务、表锁、行锁
MySQL 使用 SELECT ... FOR UPDATE 做事务写入前的确认 以MySQL 的InnoDB 为例,预设的 Tansaction isolation level 为 REPEATA ...
- MySQL事务-ROLLBACK,COMMIT用法详解
使用ROLLBACK 既然我们已经知道了什么是事务处理,下面讨论事务处理的管理中所涉及的问题. 管理事务处理的关键在于将SQL语句组分解为逻辑块,并明确规定数据何时应该回退,何时不应该回退. MySQ ...
- mysql事务锁表
-- 查看被锁住的SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS; -- 等待锁定SELECT * FROM INFORMATION_SCHEMA.INNO ...
- MySQL事务(一)
一.基本介绍 事务就是一组dml语句,这些语句存在逻辑上的相关性,这一组dml语句要么全部成功,要么全部失败,是一个整体.ACID属性(原子性,一致性,隔离性,持久性):mysql提供一种机制,保证我 ...
- mysql事务控制和锁定语句
MySQL 支持对 MyISAM 和 MEMORY 存储引擎的表进行表级锁定,对 BDB 存储引擎的表进行页级锁定,对 InnoDB 存储引擎的表进行行级锁定.默认情况下,表锁和行锁都是自动获得的,不 ...
- day15(mysql 的多表查询,事务)
mysql之多表查询 1.合并结果集 作用:合并结果集就是把两个select语句查询的结果连接到一起! /*创建表t1*/ CREATE TABLE t1( a INT PRIMARY KEY , b ...
- MySQL事务未提交导致整个表锁死
问题及说明: 当一个SQL事务执行完了,但未COMMIT,后面的SQL想要执行就是被锁,超时结束:报错信息如下: mysql> ERROR 1205 (HY000): Lock wait tim ...
- mysql数据库事务类型
出自:https://blog.csdn.net/u014439239/article/details/78086729 数据库事务有不同的隔离级别,不同的隔离级别对锁的使用是不同的,锁的应用最终导致 ...
- MySQL事务表和非事务表
查看 max_binlog_stmt_cache_size 参数解释时,有这么一句话 If nontransactional statements within a transaction requi ...
随机推荐
- [二]java运行原理
public class HelloWorld{ public static void main(String args[]){ System.out.println("hello" ...
- js 类似发微博或者微信朋友圈的时间显示 刚刚 几天前
群里的一个小伙伴(NightEagle)写的,共享出来了,我就做个记录. function getDateDiff(dateStr) { var publishTime = getDateTimeSt ...
- php连mssql中文乱码问题
我在将一个aspx+mssql的系统做成php+mssql的系统时,感觉架构大不一样,aspx多是aspx页面+aspx.cs后台协同开发,多用可视化空间开发,而php我则选用了smarty模板,感觉 ...
- 【开发工具 - Git】之Git使用案例
本帖主要介绍一下Git在实际项目开发中的使用流程,包括克隆.暂存.提交.推送.拉取.分支.冲突解决等,暂时还不包括回退. 1.首先需要安装Git,下一步下一步就行,这里就不说了.值得一提的是,如果Gi ...
- 高亮选中MEMO某一行
选中第5行 //转到指定行并选中这行的文本 procedure SelectLine(Memo1: TMemo; ln: Integer); begin Memo1.SelStart := SendM ...
- 关于模拟器不能运行项目问题:Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE
我有一个习惯,当做完某一项功能时就想试试运行效果.所以一个程序完成前会运行无数遍.但是有时会出现不能运行的问题,并且这个问题不是来自项目的错误,显示器显示如下错误: [2013-08-31 08:45 ...
- [HTTP2] HTTP1 probs and HTTP2 saves
1. HOL (HEADS of LINE BLOCKING) Too many requests in the header tag. Broswer can allow 6 reuqest to ...
- shared_ptr与weak_ptr的例子
12.20 编写程序,逐行读入一个输入文件,将内容存入一个StrBlob中,用一个StrBlobPtr打印出StrBlob的每个元素. StrBlob.h #ifndef STRBLOB_H #def ...
- 系统数据文件和信息之附加组ID
4.2BSD引入了附加组ID(supplementary group ID)的概念.我们不仅可以属于口令文件记录项中组ID所对应的组,也可属于多达16个另外的组.文件访问权限检查相应被修改为:不仅将进 ...
- C# - 转换
无论什么类型 它们存储的其实都是一系列的位 在将A类型转换为B类型时 如果能完整转换 那么系统会将两个操作数自动进行隐式转换 但也有可能因为A类型的存储位数比B类型的存储位数大 那么B类型可能就没有足 ...