首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用AI工具生成Postgresql管理的某公司组织架构,并随机插入500条数据

自从有了AI工具后,我们的开发效率,生产力确实提升了不少。这点是深有体会,在没有AI工具之前,像我这种对编程不是很熟悉的人,如果我想找这么500条数据,在网上各种搜索,找了好几天都没找到。自从有了AI工具,好长时间搞不定的问题,3、4个小时就搞定了。确实提升了我们不少效率。下面是我使用AI工具生成的一些数据,一起来看看AI的强大之处。

1、第一步,我们先写建表语句:

首先,我们需要创建组织表和员工表,并为表字段加上注释。以下是创建表的SQL语句:-- 创建组织表CREATE TABLE organization ( id SERIAL PRIMARY KEY, -- 组织机构ID name VARCHAR(255) NOT NULL, -- 组织机构名称 parent_id INTEGER REFERENCES organization(id), -- 上级部门 CONSTRAINT org_unique UNIQUE (name, parent_id) -- 确保组织机构名称和上级部门的组合唯一);-- 创建员工表CREATE TABLE employee ( id SERIAL PRIMARY KEY, -- 员工ID name VARCHAR(255) NOT NULL, -- 员工姓名 org_id INTEGER REFERENCES organization(id), -- 所属部门 position VARCHAR(255) NOT NULL, -- 职位 hire_date DATE NOT NULL, -- 入职时间 leave_date DATE, -- 离职时间 salary DECIMAL(10, 2) NOT NULL, -- 工资 address VARCHAR(255), -- 家庭地址 phone VARCHAR(20) -- 电话);

2、接下来,我们将使用PostgreSQL自带的函数向表中随机插入500条数据。由于需要生成随机数据,我们可以使用以下函数:

-- 生成随机字符串CREATE OR REPLACE FUNCTION random_string(length INTEGER)RETURNS TEXT AS $$DECLARE result TEXT := ''; i INTEGER := 0; chars TEXT := 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';BEGIN WHILE i < length LOOP result := result || substr(chars, floor(random() * length(chars) + 1)::integer, 1); i := i + 1; END LOOP; RETURN result;END;$$ LANGUAGE plpgsql;-- 生成随机日期CREATE OR REPLACE FUNCTION random_date(start_date DATE, end_date DATE)RETURNS DATE AS $$BEGIN RETURN start_date + FLOOR(random() * (end_date - start_date))::INTEGER;END;$$ LANGUAGE plpgsql;

3、最后,我们将使用这些函数向组织表和员工表中插入500条随机数据:

DO $$DECLARE org_count INTEGER := 10; -- 组织数量 emp_count INTEGER := 500; -- 员工数量 org_id INTEGER; emp_id INTEGER;BEGIN -- 插入组织数据 FOR i IN 1..org_count LOOP INSERT INTO organization (name, parent_id) VALUES (random_string(10), NULL); END LOOP;

-- 插入员工数据 FOR i IN 1..emp_count LOOP SELECT id INTO org_id FROM organization ORDER BY random() LIMIT 1; INSERT INTO employee (name, org_id, position, hire_date, salary, address, phone) VALUES (random_string(10), org_id, random_string(10), random_date('2000-01-01', '2022-12-31'), random() * 10000, random_string(20), random_string(10)); END LOOP;END;$$ LANGUAGE plpgsql;

这样,我们就成功地创建了组织表和员工表,并向其中插入了500条随机数据。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OlDVsannwmwgmgpuv2AjKPGQ0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券