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

标签 sql database oracle oracle11g

我有一个表“User”(idUsernamedepartmentId)和另一个表“Department”(idDepartment名称)。

我想向表 User 中插入随机数据,但必须只考虑之前插入的部门。

我觉得应该是这样的:

INSERT INTO User (idUser, name, departmentId)
VALUES (seq_user.nextVal, 'random name', FK_RANDOM_DEPARTMENT);

我怎样才能生成这个“随机名称”并只使用我已经插入的部门?

提前致谢!

最佳答案

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)
);

关于sql - 将随机数据插入到具有外键的表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23439390/

相关文章:

java - 如何使用 MySQL 和 Hibernate 设置 group_concat_max_len

sql - 文本文件的 Oracle 数据类型?

database - Sqlite 中的 LIKE 运算符,空格字符除外

c# - 使用来自 Oracle 存储过程的 refcursor 值填充 C# 数据表

oracle - 转换不同世纪的日期

sql - 如何避免可空 JSON 列上的​​扫描对 : <nil> *json. RawMessage 错误?

MySql 查询和 GROUP BY,我需要做哪些不同的事情?

sql - 追加查询,跳过重复条目(重复项不是主键)

sql - #1452 sql 错误意味着我无法添加外键

mysql - 数据库结构 - 属于多个团队的用户