SQL循环输入员工

Posted

技术标签:

【中文标题】SQL循环输入员工【英文标题】:SQL loop to input employees 【发布时间】:2013-04-24 13:23:16 【问题描述】:

我正在尝试创建一个 FOR 循环,将 1000 名员工插入到员工表中。 如果它们具有相同的名称,则可以,但其他 3 个值必须具有不同的值。我需要 emp_id 来插入来自 307_1307 的 1000 名员工,让经理 emp_id 为 304 或 305(随机选择),工资在 22,000 到 200,000 之间(随机选择)。我将如何着手执行此操作以及如何将序列分配为主键,即 emp_id 从 307 变为 1307?

CREATE SEQUENCE seq6
START WITH 307
INCREMENT BY 1
CACHE 10
NOCYCLE;

BEGIN
FOR i IN 1..1000 LOOP
INSERT INTO EMPLOYEE (EMP_ID, FNAME, LNAME, MANAGER_EMP_ID, salary) VALUES('307 - 1307','tommy', 'walsh', '304 or 305', 'between 22000 and 200,000');
END LOOP;
END;
/

有什么想法吗?

【问题讨论】:

【参考方案1】:

使用序列和 DBMS_RANDOM 包函数:

INSERT INTO EMPLOYEE (EMP_ID, FNAME, LNAME, MANAGER_EMP_ID, salary)
VALUES(seq6.nextVal,'tommy', 'walsh',
   CAST(DBMS_RANDOM.VALUE(304,305) AS INTEGER),
   CAST(DBMS_RANDOM.VALUE(22,200) AS INTEGER)*1000);

【讨论】:

以上是关于SQL循环输入员工的主要内容,如果未能解决你的问题,请参考以下文章

For循环冻结Javascript?

如何使用 pl/sql 循环接受用户输入?

jsp如何实现模糊查询

sql过程循环遍历字符串并输入要选择的字符

如何将循环中的信息存储到数组中

如何利用sql注入攻击删除文件