2012-12-05 30 views
1
CREATE TABLE College (
    CollegeID INTEGER AUTO_INCREMENT NOT NULL, 
    Collegename varchar(50), 
    PRIMARY KEY(CollegeID)); 

INSERT INTO `College` (`CollegeID`, `Collegename`) VALUES 
(1, 'Harvard'), 
(2, 'Princeton'), 
(3, 'Columbia'), 
(4, 'Georgetown'), 
(5, 'Yale'); 



CREATE TABLE Customer (
    CustomerID INTEGER PRIMARY KEY AUTO_INCREMENT NOT NULL, 
    FirstName varchar(20), 
    LastName varchar(20), 
    DateHired DATE, 
    CollegeID INTEGER REFERENCES College(CollegeID)); 



INSERT INTO `Customer` (`CustomerID`, `FirstName`, `LastName`, `DateHired`, `CollegeID`) VALUES 
(111, 'Johnny', 'Silvia', '20100301', 1), 
(222, 'Billy', 'Blank', '20070111', 2), 
(333, 'Susan', 'Anderson', '20021222', 3), 
(444, 'Samantha', 'Love', '19990521', 3), 
(555, 'Bill', 'Gray', '20010913', 5); 



CREATE TABLE `employer` (
    `id` INTEGER NOT NULL, 
    `EmployerName` varchar(60) NOT NULL, 
    PRIMARY KEY(id)); 


INSERT INTO `employer` (`id`, `EmployerName`) VALUES 
(1111, 'McDonalds'); 
+1

不要刪除[同樣的問題以前你問]( http://stackoverflow.com/questions/13719420/sql-database-adding-table)來碰到你的問題。這可能會導致您禁止發帖。 – hims056

+1

我被告知我的問題並不清楚,所以我想我可以重做它,我的錯誤 –

+0

你需要*編輯*你的問題不*添加*一個問題 – hims056

回答

0

如果客戶可以只有一個僱主,那麼可以將僱主ID參考添加到您的客戶表中。

如果客戶可以有多個僱主,那麼您必須創建另一個表,其中包含客戶和僱主的ID。

CREATE TABLE Customer (
    CustomerID INTEGER PRIMARY KEY AUTO_INCREMENT NOT NULL, 
    EmployerID INTEGER REFERENCES employer(id), 
    FirstName varchar(20), 
    LastName varchar(20), 
    DateHired DATE, 
    CollegeID INTEGER REFERENCES College(CollegeID)); 

我不知道MySQL的好,我只是把你所使用的語法,但如果你想建立外鍵引用檢查此鏈接了http://dev.mysql.com/doc/refman/5.0/en/innodb-foreign-key-constraints.html

0

你說的是FOREIGN KEYs

要在表格/ s的創建FOREIGN KEYs

/* Create the Parent Table */ 
CREATE TABLE College (
    ID INTEGER AUTO_INCREMENT NOT NULL, 
    CollegeName VARCHAR(50), 
    PRIMARY KEY(ID) 
); 

/* Create the Child Table and Referece the Column CollegeId of this table to the Id Column of College Table */ 
CREATE TABLE Customer (
    ID INT(11) AUTO_INCREMENT NOT NULL, 
    Name VARCHAR(40), 
    CollegeID INT(11), 
    PRIMARY KEY(ID), 
    CONSTRAINT FK_Customer_College FOREIGN KEY (CollegeID) REFERENCES College (ID) 
); 

的語法規則如下: CONSTRAINT ForeignKeyName FOREIGN KEY (ColumnName) REFERENCES TableName (ColumnName)

在另一方面,如果你已經創建的表,你可以通過修改表創建FOREIGN KEY

ALTER ChildTable ADD CONSTRAINT ForeignKeyName FOREIGN KEY (ChildColumn) REFERENCES ParentTable (ParentColumn);

相關問題