對於sqlserver中:
外來鍵參照:
必須是主鍵或者候選鍵,即必須為主鍵,或者非主鍵設定索引唯一,且型別一致
索引普通索引:單錶中的名稱不可以重複,但是不同表中的索引可以重複,這是因為,其表索引物件,資料庫預設前面加上表的資訊然後才是索引名稱
唯一鍵:單錶和不同表都不可以重複,只要是在同一資料庫中如果唯一鍵名字相同則會報錯,因為唯一鍵的索引物件是全域性的物件。
且如果資料庫中存在索引的鍵,則此字段無法建立唯一索引
外來鍵:外來鍵和唯一主鍵相同,也是儲存在資料庫的全域性物件中,所以同一資料庫中的外來鍵名稱不允許相同
觸發器:和外來鍵以及主鍵相同,儲存在資料庫的全域性物件中
對於mysql中:
字段:最好需要自己規定長度,不然會有個字部分,不知道什麼,在外聯等會報錯
索引:無普通索引和唯一索引之分,索引可以設定唯一性,不同表中的索引
可以重複,其表索引物件,資料庫預設前面加上表的資訊然後才是索引名稱(和sqlserver不一樣)
索引名稱可以與本表中的外來鍵一致,因為其物件名稱索引名稱前面加上了表資訊
外來鍵:不同表中不能重複,儲存在資料庫的全域性物件中,如果是外
鍵列必須建立索引(其實一般都需要建的加快訪問速度),不然會報錯
觸發器:不同表中觸發器不能重複,
觸發器可以與外來鍵或者索引名稱一致,位於資料庫全域性變數中,
儲存的應該是觸發器資訊,和觸發器名稱,以區別外來鍵和索引名稱
SQL 觸發器 外來鍵約束
1 構造乙個觸發器audit log,在向employees test表中插入一條資料的時候,觸發插入相關的資料到audit中。create table employees test id int primary key not null,name text not null,age int not...
關於自身表外來鍵觸發器的實現
關於自身表外來鍵觸發器的實現 目前遇到這樣乙個外來鍵定義 t girl tb1 constraint fk 1 foreign key r id references tb1 id on delete cascade 目的是對於自己的另外乙個字段進行約束,其實這樣看來,後面的級聯刪除就沒有必要了,因...
ORACLE 禁用 啟用外來鍵和觸發器
1 oracle資料庫中的外來鍵約束名都在表user constraints中可以查到。其中constraint type r 表示是外來鍵約束。2 啟用外來鍵約束的命令為 alter table table name enable constraint constraint name 3 禁用外來...