



– 建表(已删除所有外键!) CREATE TABLE monitor_location ( id SERIAL PRIMARY KEY, name VARCHAR(100) NOT NULL, city VARCHAR(50) NOT NULL, district VARCHAR(50) NOT NULL, latitude DECIMAL(9,6), longitude DECIMAL(9,6), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
CREATE TABLE vehicle_info ( id SERIAL PRIMARY KEY, plate_no VARCHAR(20) NOT NULL UNIQUE, vehicle_type VARCHAR(20), register_date DATE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
CREATE TABLE traffic_flow ( id BIGSERIAL PRIMARY KEY, vehicle_id INT NOT NULL, location_id INT NOT NULL, pass_time TIMESTAMP NOT NULL, speed DECIMAL(5,2), direction VARCHAR(10) );
– 索引 CREATE INDEX idx_traffic_flow_vehicle_id ON traffic_flow(vehicle_id); CREATE INDEX idx_traffic_flow_location_id ON traffic_flow(location_id); CREATE INDEX idx_traffic_flow_pass_time ON traffic_flow(pass_time);
– 1万监控点 INSERT INTO monitor_location (name, city, district, latitude, longitude) SELECT ‘monitor’,‘北京’,‘朝阳’, round((random()*40+20)::numeric,6), round((random()*50+70)::numeric,6) FROM generate_series(1,10000) AS i;
– 10万车辆 INSERT INTO vehicle_info (plate_no, vehicle_type, register_date) SELECT ‘VN’||CAST(i AS VARCHAR),‘小型车’,‘2020-01-01’ FROM generate_series(1,100000) AS i;
– 100万过车流水(无任何外键,绝对不报错) INSERT INTO traffic_flow (vehicle_id, location_id, pass_time, speed, direction) SELECT (i % 100000) + 1, (i % 10000) + 1, CAST(‘2025-01-01 00:00:00’ AS TIMESTAMP) + (i%1000) * INTERVAL ‘1 second’, round((random()*60+20)::numeric,2), ‘东’ FROM generate_series(1,1000000) AS i;



原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。