将随机数据插入具有外键的表中

use*_*039 2 sql database oracle oracle11g

我有一个表"用户"( ,idUser,name)departmentId和另一个表"部门"( ,).idDepartmentname

我想将随机数据插入表中User,但是有必要仅考虑先前插入的部门.

我想它会是这样的:

INSERT INTO User (idUser, name, departmentId)
VALUES (seq_user.nextVal, 'random name', FK_RANDOM_DEPARTMENT);
Run Code Online (Sandbox Code Playgroud)

如何生成此"随机名称"并仅使用我已插入的部门?

提前致谢!

pot*_*hin 5

INSERT INTO User 
(idUser, name, departmentId)
VALUES 
(seq_user.nextVal,
 DBMS_RANDOM.STRING('L', 20), /*20 is a number of characters in a string*/
 (SELECT * FROM (SELECT idDepartment FROM Department ORDER BY DBMS_RANDOM.VALUE) WHERE ROWNUM = 1)
);
Run Code Online (Sandbox Code Playgroud)

  • 有效!非常感谢你!我只需改变一些事情.INSERT INTO用户(idUser,name,departmentId)VALUES(seq_user.nextVal,DBMS_RANDOM.STRING('L',20),(SELECT*FROM(SELECT idDepartment FROM Department ORDER BY DBMS_RANDOM.VALUE)WHERE ROWNUM = 1);最好的问候,Mauricio Urbano. (2认同)