45 lines
1.0 KiB
SQL
45 lines
1.0 KiB
SQL
-- 批量插入200个模拟手环数据
|
|
-- 从 ak_users 中选取尚未绑定 wristband 的用户
|
|
-- watch_id 从 10000 开始递增
|
|
-- device_name 格式为 "手环-10000"
|
|
|
|
WITH target_users AS (
|
|
SELECT id
|
|
FROM public.ak_users u
|
|
WHERE NOT EXISTS (
|
|
SELECT 1
|
|
FROM public.ak_devices d
|
|
WHERE d.user_id = u.id
|
|
AND d.device_type = 'wristband'
|
|
)
|
|
LIMIT 200
|
|
),
|
|
users_with_watch_id AS (
|
|
SELECT
|
|
id AS user_id,
|
|
(ROW_NUMBER() OVER (ORDER BY id)) + 9999 AS watch_id
|
|
FROM target_users
|
|
)
|
|
INSERT INTO public.ak_devices (
|
|
id,
|
|
user_id,
|
|
device_type,
|
|
device_name,
|
|
device_mac,
|
|
bind_time,
|
|
status,
|
|
extra,
|
|
watch_id
|
|
)
|
|
SELECT
|
|
gen_random_uuid(), -- 生成随机UUID作为设备ID
|
|
user_id, -- 使用真实的用户ID
|
|
'wristband',
|
|
'手环-' || watch_id,
|
|
'FAKE-MAC-' || watch_id,
|
|
NOW(),
|
|
'active',
|
|
'{"note": "Generated for demo class", "source": "mock-seed"}'::jsonb,
|
|
watch_id
|
|
FROM users_with_watch_id;
|