將一組sql語句放在同一批次內去執行
(1)如果乙個sql語句出錯,則該批次內的所有sql都被取消執行
(2)myisam不支援事務
(3)事務的acid原則
原子性:一組語句當乙個整體執行
一致性:所有資料處於同樣的狀態
隔離性:事務之間互不影響
永續性:事務成交以後,對於資料的影響是持久的
–檢視資料庫事務支援
show variables like 『event scheduler』;
– 設定資料庫支援事務
set global scheduler=on;
set autocommit = 0; --關閉自動提交模式
start transaction; --開始乙個事務
commit/rollback; --提交乙個事務給資料庫/事務回滾,將資料回到本次初始狀態
set cutocommit = 1; --開啟自動提交
create table account(
id int(4) primary key auto_increment,
name varchar(32) not null,
cash decimal(9,2) not nul
insert into account(name,cash)
values(『a』,2000),(『b』,10000);
set autocommit = 0;
start transaction;
update account set cash = cash -500 where name=『customer』;
update account set cash = cash +500 where name=『shop』;
#commit;
rollback;
set autocommit = 1;
select * from account;
對錶裡面某列進行排序
在物理上來說是單獨的儲存在磁碟上的一種資料庫結構(對錶裡面的引用的指標)
(1)主鍵索引
資料庫會自動的給新增了主鍵的字段新增乙個索引
主鍵唯一區分資料庫裡的一條記錄
原理:資料庫把索引單獨存起來在乙個檔案裡,索引對應的是一些資料
當要查這個資料的時候會先去找這個索引,再根據這個索引直接找到這個資料
(類似於查字典)索引就相當於目錄
先找到在索引中的位置,再根據索引中的位置找到資料的位置
(2)唯一索引–不是為了提高查詢速度的
不同於主鍵索引
唯一索引是唯一的,但主鍵索引不是唯一的
主鍵可為空,且不唯一
(3)常規索引–是為了提高查詢速度的
經常被當作查詢條件的列可設定為常規索引
(4)全文索引–快速定位特定資料
只能用於mylsam型別的資料表
只能用於char varchar text
(1) 方式一:建立表,宣告列屬性時新增上
方式二:將所有列都宣告完畢後,再新增索引
方法三:先建立表,建立表完畢後,修改表新增索引
create table test(
in int(4) primary key,
testno varchar(10) unique
c varchar(50),
d varchar(20),
e text,
–或者方法二:
primary key(id),
unique key(testno),
index index_c(c,d),
fulltext(e)
) engine=myisam;
mysql 新增新增事務處理
開始首先說明一下,mysql資料庫預設的資料庫引擎是myisam,是不支援事務的,單數如果你新增了資料執行語句是不會出錯的,單數不管用,即便是回滾事務,記錄也是插入進去了,所有首先我們要做的第一步是更改資料庫引擎語句如下 alter table tablename engine innodb 用到的...
PB事務處理
1 資料視窗更新,只要dberror有錯誤,而事先沒有做過任何commit工作,那麼rollback可以回滾到上次commit位置,即上次commit後所有的資料將被回滾。2 如果是直接寫入sql語句,只要資料庫出現錯誤,那麼rollback可以回滾到上次commit的位置,即上次commit後所有...
MySQL事務處理
start transaction,commit和rollback語法 start transaction begin work commit work and no chain no release rollback work and no chain no release set autocom...