这是一个非常简单的错误,我只是不知道。 下面的代码:错误:在“FROM”处或附近的语法错误
INSERT INTO srs1.modulegrades
VALUES (srs1.student.student_id, srs1.modules.module_id, floor(random() * 10))
FROM srs1.student, srs1.modules;
这是一个非常简单的错误,我只是不知道。 下面的代码:错误:在“FROM”处或附近的语法错误
INSERT INTO srs1.modulegrades
VALUES (srs1.student.student_id, srs1.modules.module_id, floor(random() * 10))
FROM srs1.student, srs1.modules;
貌似你试图使用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;
从现有关系插入关系需要SELECT
条款。子句values
用于为输入到系统的数据动态创建关系。
感谢用户墨尔波墨涅以下:
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;
文档的相关部分:https://www.postgresql.org/docs/current/static/sql-insert.html。请注意,“VALUES ...”和** _ query _ **被列为替代项;即你不能同时拥有'VALUES'和'SELECT ... FROM'。 – melpomene
谢谢@melpomene,我会添加到我的答案。 –
谢谢,这工作过。不是我期望的,但这是我的逻辑,而不是代码 –
我现在试图让student_id只发生4次。我会怎么做呢? –