2014-09-28 87 views
0

我是這個初學者,但它可能(在MySQL工作臺)創建一個屬性是一個依賴於另一個表的屬性?MySQL使用另一個表中的set屬性創建表?

CREATE TABLE danes (
    id INT PRIMARY KEY, 
    name VARCHAR(50), 
    nationality VARCHAR(20), 
    gender CHAR(1), 
    degree SET ?????????????????? from degree(level) 
); 

CREATE TABLE degree (
    level VARCHAR(10), 
    subject VARCHAR(20), 
    institutionawarding VARCHAR(20), 
    yearawarded DATE, 
    PRIMARY KEY (level, subject) 
); 

別介意我得到它

+0

你談論一個[外鍵](http://dev.mysql.com/doc/refman/5.6/en/create-table - 對外商-keys.html)? – Mureinik 2014-09-28 16:43:14

+0

我不確定你想要達到的目標。當他們之間沒有聯繫時,哪個程度的級別應該顯示在個人的「丹麥人」上?或者你問如何鏈接它們? – 2014-09-28 16:50:21

+0

+1 to @ GordonLinoff的回答,但是這不起作用的原因是它需要'degree.level'中的新值來改變SET的定義。當「level」有超過64個不同的值時會發生什麼? (MySQL SET數據類型被限制爲64個元素。) – 2014-09-28 17:14:37

回答

2

我猜測你想要另一個表,結合表:

CREATE TABLE DaneDegrees (
    DanesId INT REFERENCES danes(id), 
    Level VARCHAR(10), 
    Subject VARCHAR(20), 
    FOREIGN KEY fk_level_subject(level, subject) REFERENCES Degree(level, Subject) 
); 

我會的,但是,有兩個DanesDegreesINT AUTO_INCREMENT PRIMARY KEY

+0

不只是屬性 – Bjartastavonin 2014-09-28 18:40:07

0

顯然,你不能只是說

< 屬性名稱>設置(獲取其它多部未華集)

設定的東西不工作的方式

雖然你們可以明顯地更新它,它實際上可以

更新表名

屬性 =(SELECT * FROM 另一個TABLE_NAME

相關問題