一个非常简单的错误,我根本不知道。 这是代码:
INSERT INTO srs1.modulegrades
VALUES (srs1.student.student_id, srs1.modules.module_id, floor(random() * 10))
FROM srs1.student, srs1.modules;
答案 0 :(得分:1)
您似乎正在尝试使用insert-select语句:
INSERT INTO srs1.modulegrades
SELECT srs1.student.student_id,
srs1.modules.module_id,
FLOOR(RANFOM() * 10))
FROM srs1.student, srs1.modules;
请注意,隐式连接(在from
子句中包含多个表)被认为已弃用,并且使用显式交叉连接可以更好地使用它:
INSERT INTO srs1.modulegrades
SELECT srs1.student.student_id,
srs1.modules.module_id,
FLOOR(RANFOM() * 10))
FROM srs1.student
CROSS JOIN srs1.modules;
答案 1 :(得分:1)
从现有关系中插入关系需要SELECT
子句。 values
子句用于为输入系统的数据动态创建关系。
感谢用户使用melpomene进行以下操作:
Relevant part of the documentation。请注意,VALUES ...和查询被列为替代品;即你不能同时拥有VALUES和SELECT ... FROM。
以下内容适用于您的数据库:
INSERT INTO srs1.modulegrades
SELECT srs1.student.student_id
, srs1.modules.module_id
, floor(random() * 10)
FROM srs1.student, srs1.modules;