2014-09-28 90 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

相关问题