SQL constraint 外鍵(Foreign Key)

2008年5月7日 2 則評論

先前開發的小系統,都不太喜歡用constraint,怕在匯入或一些從db 下手作業時會很麻煩,不過系統愈做愈大
還是一定要用constraint 這樣才不會因為程式漏做了而造成資料失去完整性或關連

根據 ANSI SQL92 的標準來看,在違 反 integrity constraint 時,資料庫系統可以採取 4 種動作 :

  • set NULL,即當 parent table 中 delete 或 update 一筆資料時,foreign table 上的資料是設為 NULL。
  • set default,設 foreign key 為 最初的default value。
  • cascade,即當 delete 或 update parent table 時,對 foreign table也做 同樣的 delete 或 update。有了cascade 的功能之後,在我們開發 application 就可以節省處理 integrity constraint 的時間了。
  • no action (restrict),即當此筆資料存在有 foreign key 時,不允許做 delete 或 update。也就是說必須將此 integrity constraint 除去後才能做 delete 或 update。

Mysql

在INNODB型態下才有支援外來鍵,不然會是設假的,INNODB型態才會檢查是否有違反外來鍵限制,會依ON UPDATE CASCADE(參考主鍵修改,外來鍵會跟著改),ON DELETE SET NULL(參考主鍵刪除,外來鍵會變空值)…等等的CASCADE 限制對table處理

以下的語法是檢查是否符合外來鍵限制條件。0是關掉檢查,1是打開檢查。
SET FOREIGN_KEY_CHECKS = 0;
SET FOREIGN_KEY_CHECKS = 1;

以下的例子則是在建立表格時指定外來鍵:
MySQL:
CREATE TABLE ORDERS
(Order_ID integer,
Order_Date date,
Customer_SID integer,
Amount double,
Primary Key (Order_ID),
Foreign Key (Customer_SID) references CUSTOMER(SID));

Oracle:
CREATE TABLE ORDERS
(Order_ID integer primary key,
Order_Date date,
Customer_SID integer references CUSTOMER(SID),
Amount double);

SQL Server:
CREATE TABLE ORDERS
(Order_ID integer primary key,
Order_Date datetime,
Customer_SID integer references CUSTOMER(SID),
Amount double);

以下的例子則是藉著改變表格架構來指定外來鍵:

MySQL:
ALTER TABLE ORDERS
ADD FOREIGN KEY (customer_sid) REFERENCES CUSTOMER(sid);

Oracle:
ALTER TABLE ORDERS
ADD (CONSTRAINT fk_orders1) FOREIGN KEY (customer_sid) REFERENCES CUSTOMER(sid);

SQL Server:
ALTER TABLE ORDERS
ADD FOREIGN KEY (customer_sid) REFERENCES CUSTOMER(sid);

Categories: Database Tags: ,

HTML TEXT FIELD文字框中如何讓字靠右顯示及輸入

2008年5月5日 尚無評論
因為有需要讓輸入的文字靠右顯示及輸入,所以查了一下,整理如下:

<input type=text id=GPSL size=10 value=”-789.123″ name=”text2″  style=”direction:rtl”>

<input   type=text   value=”aaaa”   size=50     dir=”rtl”>

<input   type=text   value=”aaaa”   size=50   style=”writing-mode:tb-rl;text-align:right”>  

目前我用第一個就很正常啦,所以其它的就沒測試是否適用

Categories: WebDesign Tags: ,

Vista 如何使用Telent

2008年4月30日 尚無評論

Vista 安裝後 預設是沒有啟用telnet的,像我們這種「傳統」人士
往往都會需要用到,雖然去下載putty 就可以了,但有時臨時要來一下
所以還是把他啟用好了,原正他不算是services 是不會常駐吃資源的

要啟用的方式如下…

more..

Categories: 小技巧 Tags: ,

啥是「藍藍路」….

2008年4月23日 尚無評論

這幾天在朋友的MSN匿稱寫著 不知道「藍藍路」是什麼就落伍了….

糟糕….我還真的不知道這是啥,上網去查了一下才知「藍藍路」…是啥…

more..

Categories: 新知 Tags:

Windows 工作管理員的[關機]選項不見了

2008年4月21日 尚無評論

最近有需要會用到遠端電腦
還會需要他進行重開動作
但基本的[開始]之下是只能中斷連線的
小弟記得自己的NB工作管理員以前在連線時
是有關機的項目 
但目前這台主機怎麼看不到呢?
又上網找了找一些資訊

發現原來又是一些怪怪設定而影響的
調整出現的方式如下:

控制台> 使用者帳戶> 變更使用者登入或登出的方式
勾選 使用歡迎畫面> 重新開機

就能看到啦

Categories: 小技巧 Tags:
分頁: 上一頁 1 2 3 ... 54 55 56 57 58 59 60 ... 86 87 88 下一頁