ALTER TABLE tableName ENGINE=InnoDB;
建表時直接指定:
CREATE TABLE test ( id INT AUTO_INCREMENT PRIMARY KEY, websitename VARCHAR(200), websiteurl VARCHAR(200) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
$con = mysql_connect("localhost","root","pwd");
mysql_select_db("mysqlnew");
# 事務 1:提交
mysql_query("BEGIN");
mysql_query("INSERT INTO test(websitename,websiteurl) VALUES('','https://jb51.net')");
mysql_query("INSERT INTO test(websitename,websiteurl) VALUES('百度','https://baidu.com')");
mysql_query("COMMIT");
# 事務 2:回滾
mysql_query("BEGIN");
mysql_query("INSERT INTO test(websitename,websiteurl) VALUES('google','https://google.com.hk')");
mysql_query("ROLLBACK");
# 事務 3:無 COMMIT/ROLLBACK(隱式回滾)
mysql_query("BEGIN");
mysql_query("INSERT INTO test(websitename,websiteurl) VALUES('bing','https://bing.com')");
# 腳本結束,連接關閉,自動回滾
僅前兩條 INSERT 成功寫入,google 與 bing 因回滾/隱式回滾未持久化。
新代碼請使用 mysqli 或 PDO 的 beginTransaction()、commit()、rollBack() 方法,避免手寫 SQL。