MYSQL常見概念一: 事務
定義: 簡而言之是一個sql或者是多個sql的操作集,在執行過程中,要麼都成功,要麼都失敗
特點 : 事務有四大特性: 原子性 (整個事務包含的sql要麼都執行成功,要麼都失敗)
一致性 (資料庫在事務執行前與執行後是一致的,資料能夠對的上)
隔離性 (多個事務之間不相互影 響)
永續性 (事務一旦完成,對資料庫的影響是永續性的,不會因為資料庫故障丟失事務)
事務併發問題: 髒讀: 一個事務A讀取了另一個事務B未提交的資料,事務B回滾,會造成A讀了額外的資料(髒資料)
幻讀: 事務A查資料庫,發現沒有該記錄,於是插入該記錄,結果事務B早一步插入,感覺事務A是在幻讀
不可重複讀: 事務A多次查詢資料庫,事務B在多次查詢過程更改了資料表,造成事務A多次讀取結果不一致
事務隔離鎖級別:
事務隔離級別 | 髒讀 | 不可重複讀 | 幻讀 |
read-uncommitted | 允許 | 允許 | 允許 |
read-committed | 不允許 | 允許 | 允許 |
repeatable-read | 不允許 | 不允許 | 允許 |
serializable | 不允許 | 不允許 | 不允許 |
其他: mysql中實現了事務的引擎有: innodb , bdb
事務sql例項:
建表:
CREATE TABLE `users` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, `pass` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `created_at` timestamp NOT NULL DEFAULT '2018-01-01 00:00:00', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; CREATE TABLE `institution_users` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `institution_id` int(11) unsigned, `user_id` int(11) unsigned, `created_at` timestamp NOT NULL DEFAULT '2018-01-01 00:00:00', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
事務插入資料:
BEGIN;
INSERT INTO users(name,pass,created_at) VALUES('test_user','123456',NOW());
set @my = (select last_insert_id() as user_id);
INSERT INTO institution_users(institution_id,user_id,created_at) VALUES(170,@my,NOW());
COMMIT;
-- 如果報錯,手動rollback
-- ROLLBACK;
相關推薦
MYSQL常見概念一: 事務
定義: 簡而言之是一個sql或者是多個sql的操作集,在執行過程中,要麼都成功,要麼都失敗 特點 : 事務有四大特性: 原子性 (整個事務包含的sql要麼都執行成功,要麼都失敗) 一致性
MYSQL常見概念二 : 觸發器
定義:資料庫某張表的增加、刪除、更新的操作觸發預先定義的sql執行 特性: 引起觸發器執行的操作與觸發器內定義的sql,要麼一起執行,要麼一起不執行 應用場景: 1. 資料備份,往一張表插入資料,需要往另外一張表同步時 2.
Mysql常見問題(一)
1、最簡單的sql語句如CREATE TABLE `student1`報錯,create下始終有一個紅色波浪線,這是因為,先打開了編寫SQL的視窗,在外面再建了表。他的智慧提示不同步。關了這個SQL視窗,重新再開啟一個,就沒有問題。 報錯為 error code 1064 2、報錯No suit
Swift學習筆記六:常見概念(一)
七、常見概念1.範圍Range、ClosedRange和NSRange的使用//區間分為閉區間和半開區間import Foundationlet closedRange: ClosedRange = 1...3 //閉區間let intArray = ["1", "2", "
mysql錯誤【一】[ERROR] Missing system table mysql.proxies_priv
mysql錯誤 環境:mysql一主一從架構,主庫是mysql5.1,從庫是mysql5.6;系統均為CentOS6.2 問題: 在主庫上面執行的SQL語句 1.創建表 CREATE TABLE `app_versions` ( `date` date NO
MySQL基本概念以及簡單操作
software 倉庫 必須 key 不能 即使 同時 databases ecif 一、MySQL MySQL是一個關系型數據庫管理系統,由瑞典MySQL AB 公司開發,目前屬於Oracle 旗下產品。MySQL 是最流行的關系型數據庫管理系統之一,在 WEB
MySQL故障處理一例_Another MySQL daemon already running with the same unix socket
read mon 解決 roo blog local 啟動mysql style 處理 MySQL故障處理一例:“Another MySQL daemon already running with the same unix socket”。 [root@test-121
MySQL學習(一)ODBC 安裝
oca local new cmd 密碼 服務 關閉 mysql 系統 寫前說明 初次接觸MySQL,都說MySQL各種好。我也來學習學習。之前只有SQLServer2008的經驗,其實也只是皮毛。因為SQLServer還是比較容易上手的。也不麻煩。但是自己
Dapper EF 等orm Mysql不支持事務解決辦法
inno 切換 命令行 type lac 管理員 access 是什麽 更新 MySQL表類型MyISAM和InnoDB區別 MyISAM:這個是默認類型,它是基於傳統的ISAM類型,ISAM是Indexed Sequential Access Method (有索引的順序
MySQL取上一條數據的某個字段值
arch oracle ble led ora 定義 declare 自定義 default SELECT @lagfield ,@lagfiled := targField, t.*FROM TABLE t, (SELECT @lagfield := ‘‘) r其中tar
Python/ MySQL練習題(一)
姓名 insert avg when 並且 記錄 有效 完全 cas Python/ MySQL練習題(一) 2、查詢“生物”課程比“物理”課程成績高的所有學生的學號 1 SELECT 2 * 3 FROM 4 ( 5 SELEC
MYSQL的學習(一)Mysql數據庫
relation 使用 size strong 什麽 bms 表格 書籍 訪問 1.什麽是數據庫? 數據庫(database)是按照數據結構來組織.存儲和管理數據的倉庫 2.關系型數據庫管理系統(Relational Database Management Syste
mysql兩主一從配置
mysqld_multi管理多個數據庫實例 數據庫兩主一從同步 三臺服務器:主機192.168.11.126,192.168.11.127,從:192.168.11.128準備同步的庫:192.168.11.126 ,account_db,192.168.11.127,game_db;首先在各自服務器
php 連接mysql 錯誤排查一例
php mysql 連接錯誤 php後臺接不上mysql數據庫,查看phpinfo,mysql驅動正常。查看日誌 發現配置正確,連接被拒,猜想可能是用戶權限的問題進入數據庫查看用戶和權限 [[email protected]/* */ wezchina]# mysql -h 192.1
Mysql基本命令一
one opera operate sql日誌 trunc 基本 字段類型 原來 結構 一、清除mysql表中數據 delete from 表名;truncate table 表名;不帶where參數的delete語句可以刪除mysql表中所有內容,使用truncate t
MYSQL數據庫事務介紹
mysql 數據庫 介紹 一、數據庫事務介紹 簡單地說,事務就是指邏輯上的一組SQL語句操作,組成這組操作的各個SQL語句, 執行時要麽全成功要麽全失敗。 列如:小明給小紅轉賬5塊錢,流程如下: 1.從小明銀行卡取出5元,計算式money-5 2.把上面5塊錢打入小紅的賬號上,小紅收到5塊,
mysql批處理/觸發器/事務管理/存儲過程
查看 rop 插入 hms call 執行 查詢 mit 員工 mysql裏的批處理(sql語句) 格式: l mysql –u user –p < sql_file 表示從某個文件裏執行sql語句 l mysql –u user –p < sql_f
A query was run and no Result Maps were found for...原來是mapper.xml文件出了問題,是使用MyBatis最常見的一種錯誤
tor like .cn -1 es2017 batis pre XML apach 今天遇到一個問題,原來是mapper.xml文件出了問題,是使用MyBatis最常見的一種錯誤 報錯的結果是這樣的: A query was run and no Result Ma
MySQL用另一張表的字段值Update本表
conn class tab highlight ble pre true field brush SQL示例: UPDATE TABLE1 a, TABLE2 b SET a.field1 = b. field1 [, a.field2 = b.field2, ...
mysql常見優化
sql 復制 緩存優化 blank depend 個數 用戶id 應該 lte 優化Group By語句 默認情況下,MySQL 排序所有GROUP BY col1,col2,....。查詢的方法如同在查詢中指定ORDER BY col1,col2,...。如果顯式包括一個