1

我创建了 'students' 表,其中 'sid' 是主键,并且我在 sid 中​​插入了许多值。我创建了第二个名为“课程”的表,它有一个主键“cid”,我也输入了 cid 的值。现在,我想创建一个名为“enroll”的关系表,我已经这样做了——

create table enroll(
    grade char(2),
    sid int not null,
    cid int not null,
    primary key(sid,cid),
    foreign key (cid) references courses(cid) on delete cascade,
    foreign key (sid) references students(sid) on delete cascade
);

现在,当我尝试使用查看表格时,select * from enroll; 我没有得到任何输出。它说“返回0行”。为什么是这样?它不应该具有其他表中 sid 和 cid 的所有值吗?

4

2 回答 2

0

你刚刚创建了表结构,模式,你的表是空的,所以你没有得到任何结果。

于 2012-04-18T18:09:26.130 回答
0

为了从其他表中的值创建一个新表,您可以执行以下操作:

CREATE TABLE new_table AS (SELECT * FROM old_table);
  • 选择语句将是要提取的字段。
  • 您可以将列重命名为:选择 [字段名称] 作为 [您希望字段名称是什么]

欲了解更多信息,请阅读这篇文章

无论如何,对于您的特定情况:

 Create table enroll AS (Select s.sid AS 'Sid', c.cid AS 'Cid' from courses c inner join students s on c.something = s.something)

用学生的 id 替换 '.something'

于 2012-04-18T18:15:42.500 回答