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循环输入员工的主要内容,如果未能解决你的问题,请参考以下文章