在最近遇到乙個需求,需要將對資料表結構的操作(增加字段、刪除字段)等用事務做控制。在對這個需求做評估時,考慮到資料表結構操作和資料操作屬於不同的級別操作(dml和ddl),就初步回絕了需求。然後又在sqlite中做了以下實驗:
begin transaction;
create table test(a int);
insert into test(a) values(1);
alter table test add b int;
insert into test values(2,2);
commit transaction;
執行這個語句塊,直接報錯。提示是:不能在乙個事務內開另乙個事務。
原因就是,ddl屬於隱性提交事務,在執行前資料庫內部會開乙個事務。但在語句塊中已經顯式開啟了事務,導致內部事務開啟失敗。
使用sqlplus建立DDL和DML操作方法
1.連線資料庫 在window進入命令列模式敲sqlplus就會 然後進行表的ddl操作 例如 在進行dml操作 你可以對剛才建立的模式進行資料的插入和資料的更新操作 例如資料的插入 這裡要注意的是 如果你出先如下錯誤 解決方法 要在每一句結束是加上分號 2表示第二行。在sqlplus工具中分號才是...
DDL和DML的區別
dml data manipulation language 資料操縱語言 適用範圍 對資料庫的表中資料進行一些簡單操作,如insert,delete,update,select等。ddl data definition language 資料定義語言 適用範圍 對資料庫中的某些物件 例如,data...
DDL和DML 的區別
ddl data definition language 資料定義語言 create table 建立表 alter table 修改表 drop table 刪除表 truncate table 刪除表中所有行 create index 建立索引 drop index 刪除索引 當執行ddl語句時...