如何用程式設定一個TABLE 有主鍵,跟候選鍵 |
尚未結案
|
GiGi
一般會員 ![]() ![]() 發表:17 回覆:21 積分:7 註冊:2002-10-19 發送簡訊給我 |
with AddIndexDef do begin
Name := '';
Fields := 'Field1';
Options := [ixPrimary];
end;
with AddIndexDef do begin
Name := 'Fld2Indx';
Fields := 'Field2';
Options := [ixCaseInsensitive];
end;
CreateTable; 這是delphi 5 的範例(截錄) 照著code 執行 但是資料庫只有第一個欄位是主鑑,但是候選鍵沒有產生
請top 的網友 幫幫忙(對不起 我有爬過文章了 但是找不到才問的)
謝謝
|
hagar
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
azurecloud
中階會員 ![]() ![]() ![]() 發表:52 回覆:108 積分:92 註冊:2003-09-04 發送簡訊給我 |
Hi, GiGi 您好:
先解答 hagar 版主的一些問題,舉一例子
假設有 身份証字號、學號、姓名、姓別 四個欄位的資料表
1.Super Key(SK):指的是可以鎖定到單一筆資料的[欄位集合],例:
[身份証字號]、[身份証字號+姓名]、[身份証字號+姓名+姓別]…
2.候選鍵(CK):在 SK 當中同為"最小"的集合,以此例而言符合的有
[身份証字號]、[學號] 其他的不是過多就是會重複
3.主鍵(PK):由候選鍵中可隨便選一做為主鍵…
我的建議是,山不轉路轉,何必執著於某一特定的語法呢?以純 SQL 來說
CREATE TABLE [dbo].[TEST] (
[TEST1] [varchar] (1) ,
[TEST2] [varchar] (3) ,
[TEST3] [varchar] (255) NOT NULL PRIMARY KEY ,
[TEST4] [int] ,
[TEST5] [char] (10) NOT NULL UNIQUE
) ON [PRIMARY]
GO
您可以用例如 TQuery 物件將上述 SQL 語法送出而建立一資料表,那 TEST3
就是主鍵,TEST5 就可以是候選鍵啦!
希望對您有幫助。 ========================
我要努力向上======================== |
GiGi
一般會員 ![]() ![]() 發表:17 回覆:21 積分:7 註冊:2002-10-19 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |