create_task_list_table.sql 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. -- 创建任务列表表
  2. -- 用于存储需要开发的任务列表
  3. CREATE TABLE IF NOT EXISTS public.task_list (
  4. task_id SERIAL PRIMARY KEY,
  5. task_name VARCHAR(255) NOT NULL,
  6. task_description TEXT NOT NULL,
  7. status VARCHAR(20) NOT NULL DEFAULT 'pending',
  8. code_name VARCHAR(255),
  9. code_path VARCHAR(500),
  10. create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
  11. update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
  12. create_by VARCHAR(100) NOT NULL
  13. );
  14. -- 添加表注释
  15. COMMENT ON TABLE public.task_list IS '任务列表表,用于存储需要开发的任务信息';
  16. COMMENT ON COLUMN public.task_list.task_id IS '任务ID,主键,自增';
  17. COMMENT ON COLUMN public.task_list.task_name IS '任务名称';
  18. COMMENT ON COLUMN public.task_list.task_description IS '任务描述,markdown格式';
  19. COMMENT ON COLUMN public.task_list.status IS '任务状态:pending(待处理), processing(处理中), completed(已完成), failed(失败)';
  20. COMMENT ON COLUMN public.task_list.code_name IS '生成的代码文件名';
  21. COMMENT ON COLUMN public.task_list.code_path IS '代码文件路径';
  22. COMMENT ON COLUMN public.task_list.create_time IS '创建时间';
  23. COMMENT ON COLUMN public.task_list.update_time IS '更新时间';
  24. COMMENT ON COLUMN public.task_list.create_by IS '创建者';
  25. -- 创建索引以提高查询性能
  26. CREATE INDEX IF NOT EXISTS idx_task_list_status ON public.task_list(status);
  27. CREATE INDEX IF NOT EXISTS idx_task_list_create_time ON public.task_list(create_time);
  28. -- 创建更新时间自动更新的触发器函数
  29. CREATE OR REPLACE FUNCTION update_task_list_update_time()
  30. RETURNS TRIGGER AS $$
  31. BEGIN
  32. NEW.update_time = CURRENT_TIMESTAMP;
  33. RETURN NEW;
  34. END;
  35. $$ LANGUAGE plpgsql;
  36. -- 创建触发器
  37. DROP TRIGGER IF EXISTS trigger_update_task_list_time ON public.task_list;
  38. CREATE TRIGGER trigger_update_task_list_time
  39. BEFORE UPDATE ON public.task_list
  40. FOR EACH ROW
  41. EXECUTE FUNCTION update_task_list_update_time();