如何根据条件insert数据?

carboy2000 2013-06-26 10:40:15
project表:

project_name project_state start_date
-------------------------------------------------
测试工序 未开始
喷漆 正在进行中 2013-06-26
包装 正在进行中 2013-06-26
质量抽查 未开始
。。。


怎么在插入数据的时候,判断插入的列project_state如果为"正在进行中",则start_date为CURRENT_DATE,如果project_state为“未开始”,则不需插入。可以实现吗?
...全文
350 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
rucypli 2013-06-27
  • 打赏
  • 举报
回复
一条sql搞不定,写一个插入的存储过程吧
ACMAIN_CHM 2013-06-27
  • 打赏
  • 举报
回复
可以在触发器中实现,检查如果 new.project_state='未开始'; set new.start_date=null;
Rotel-刘志东 2013-06-27
  • 打赏
  • 举报
回复
delimiter $$ create trigger testref before isnert on test1 for each row begin if new.project_state='正在进行中' then set new.start_date=current_date; else set new.start_date=null; end if; end$$ delimiter;
wwwwb 2013-06-27
  • 打赏
  • 举报
回复
DELIMITER $$ CREATE TRIGGER testref BEFORE INSERT ON test1 FOR EACH ROW BEGIN IF new.project_state='正在进行中' THEN SET new.start_date=CURRENT_DATE; ELSE SET new.start_date=NULL; END IF; END$$ DELIMITER ;
carboy2000 2013-06-26
  • 打赏
  • 举报
回复
表的结构很简单,就这样: CREATE TABLE `project` ( `project_name` varchar(100) NOT NULL, `project_state` varchar(50) DEFAULT '未开始', `startdate` date DEFAULT NULL ) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=utf8$$
carboy2000 2013-06-26
  • 打赏
  • 举报
回复
我的意思是,本来这个是由程序判断的,但我想在SQL语句直接实现: 1、如果当我下拉project_state,选择项目状态为"正在进行中",则执行 insert into project(project_name,project_state,start_date) values('喷漆','正在进行中',CURRENT_DATE) 2、如果当我下拉project_state,选择项目状态为"未开始",则执行:(无须插入start_date列) insert into project(project_name,project_state) values('测试工序','未开始')
ACMAIN_CHM 2013-06-26
  • 打赏
  • 举报
回复
(不要高估你的汉语表达能力或者我的汉语理解能力) 建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。 参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html 1. 你的 create table xxx .. 语句 2. 你的 insert into xxx ... 语句 3. 结果是什么样,(并给以简单的算法描述) 4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL) 这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧