A. sql如何建立外鍵請教高手了
資料庫mysql
建立外鍵的前提:
本表的列必須與外鍵類型相同(外鍵必須是外表主鍵)。
外鍵作用:
使兩張表形成關聯,外鍵只能引用外表中的列的值!
指定主鍵關鍵字:
foreign
key(列名)
引用外鍵關鍵字:
references
<外鍵表名>(外鍵列名)
事件觸發限制:
on
delete和on
update
,
可設參數cascade(跟隨外鍵改動),
restrict(限制外表中的外鍵改動),set
Null(設空值),set
Default(設默認值),[默認]no
action
例如:
outTable表
主鍵
id
類型
int
創建含有外鍵的表:
create
table
temp(
id
int,
name
char(20),
foreign
key(id)
references
outTable(id)
on
delete
cascade
on
update
cascade);
說明:把id列
設為外鍵
參照外表outTable的id列
當外鍵的值刪除
本表中對應的列篩除
當外鍵的值改變
本表中對應的列值改變。
自己實踐
才能完全了解外鍵的作用
關鍵是:事件觸發限制的作用
B. SQL建立外鍵
-- 創建測試主表. ID 是主鍵.
CREATE TABLE test_main (
id INT,
value VARCHAR(10),
PRIMARY KEY(id)
);
-- 創建測試子表.
CREATE TABLE test_sub (
id INT,
main_id INT,
value VARCHAR(10),
PRIMARY KEY(id)
);
默認外鍵約束方式
ALTER TABLE test_sub ADD CONSTRAINT main_id_cons FOREIGN KEY (main_id) REFERENCES test_main;
DELETE CASCADE 方式
-- 創建外鍵(使用 ON DELETE CASCADE 選項,刪除主表的時候,同時刪除子表)
ALTER TABLE test_sub
ADD CONSTRAINT main_id_cons
FOREIGN KEY (main_id) REFERENCES test_main ON DELETE CASCADE;
UPDATE CASCADE方式
-- 創建外鍵(使用 ON UPDATE CASCADE 選項,更新主表的主鍵時候,同時更新子表外鍵)
ALTER TABLE test_sub
ADD CONSTRAINT main_id_cons
FOREIGN KEY (main_id) REFERENCES test_main ON UPDATE CASCADE;
SET NULL方式
-- 創建外鍵(使用 ON DELETE SET NULL 選項,刪除主表的時候,同時將子表的 main_id 設置為 NULL)
ALTER TABLE test_sub
ADD CONSTRAINT main_id_cons
FOREIGN KEY (main_id) REFERENCES test_main ON DELETE SET NULL;
是否可以解決您的問題?
C. sql表中怎樣設置外鍵
兩種方法,命令與圖形化
圖形化,在控制台左邊的小窗格中,找到要設置的表格名,右鍵,新建外鍵,然後根據要求設置既可。(新建關系圖-->添加表 然後直接用滑鼠拖欄位連接就可以建立外鍵約束了 )
命令方式
sql ce表中建立外鍵約束的語法:CREATE TABLE DetectTable(UserID integer,StartTime datetime not null,EndTime datetime not null,MassName nvarchar(10), foreign key (UserID) references UserTable(UserID)),其中,UserID為UserTable表中的主鍵。
D. sql創建表時設置外鍵約束
在近幾年的實際的項目中,創建表的時候一般不會使用真正意義上的物理主外鍵來關聯兩個表。而是在業務上通過邏輯上的主外鍵進行關聯。
以前的軟體架構中偏向於使用主外鍵,在創建表的時候就直接指定某個表的某個欄位,引用另外一個表的主鍵。現在很少這樣做了。
E. sql創建外鍵語句
1、創建測試主表(班級表test_class),
create table test_class(class_id number, class_name varchar2(20));