有两个表,表A和表B.
表A是用户表。
表B是待办表。
现要对A的所有用户在B表插入一列数据,也就是说A的所有用户在B表都产生一条待办数据。
A和B通过username对应。即A表username对应B表username该SQL实现,执行一次直接批量产生A表的所有用户加一条待办数据。试了差不多有20分钟了,失败,高手帮帮忙。
表A是用户表。
表B是待办表。
现要对A的所有用户在B表插入一列数据,也就是说A的所有用户在B表都产生一条待办数据。
A和B通过username对应。即A表username对应B表username该SQL实现,执行一次直接批量产生A表的所有用户加一条待办数据。试了差不多有20分钟了,失败,高手帮帮忙。
比如,表A有张三,李四,王五,黄瓜四个用户.username就是张三,李四,王五,黄瓜四.
现在要写个SQL,直接往B写对应的四条数据.就用username关联,假如B表有B1,B2,B3,B4,B5有列.其中B1是自动产生的数字ID,B2为待办标题,我们这次要给的值为test007,B3为username,B4为URL,这里给http:xxx.xxx.xx.xxx,B5为创建时间,这里给它 2011-05-11 pm 07:00:00二楼这样是否可以?
具体的SQL贴出来
我是这样试.先
select 'insert into B (ID, MAIN_DOC_ID, USERNAME, URL, DB_ID, TITLE, FLOW_NAME, CURR_NODE, PREV_NODE, PREV_USERNAME, AUTHOR, UNIT,
CREATED_TIME, START_TIME, REQUEST_TIME, END_TIME, LIMIT_TIME, LIMIT_HOUR, LIMIT_MINUTE, CHECKED, PRESS_NO, PRESS_START_DATE,
PRESS_END_DATE, DEST_UNIT, INST_DEG, CITY_ID, USER_ID, OPINION, HIS_NODE, FACT_TIME, WARN_TIME)values (0, 4825720300044AAA482577CF00232F4B, '||USERNAME||', http://test.yntel.com, 900000103, 测试, 50050002, 主办, 部门领导, 肖/test, 管理员, 综合部,2010-11-2 PM 02:24:18, 2010-11-3 PM 05:19:30, REQUEST_TIME, END_TIME, 1, 30, 30, 0, 0, 0,0, 0, 0, 1, USER_ID,0 ,0 , 0,) ' from A; 然后把结果拿到程序窗口执行.批量前先试只拿一条执行,拿出来的是这样的
insert into B (ID, MAIN_DOC_ID, USERNAME, URL, DB_ID, TITLE, FLOW_NAME, CURR_NODE, PREV_NODE, PREV_USERNAME, AUTHOR, UNIT,CREATED_TIME, START_TIME, REQUEST_TIME, END_TIME, LIMIT_TIME, LIMIT_HOUR, LIMIT_MINUTE, CHECKED, PRESS_NO, PRESS_START_DATE,
PRESS_END_DATE, DEST_UNIT, INST_DEG, CITY_ID, USER_ID, OPINION, HIS_NODE, FACT_TIME, WARN_TIME)values (0, 4825720300044AAA482577CF00232F4B, kmgdqdxfgsws, http://test.aa.com, 900000103, 测试, 50050002, 主办, 部门领导, 肖/YNTtest, 管理员, 综合部,2010-11-2 PM 02:24:18, 2010-11-3 PM 05:19:30, REQUEST_TIME, END_TIME, 1, 30, 30, 0, 0, 0,0, 0, 0, 1, USER_ID,0 ,0 , 0, 0)
执行的时候,总是报右括号未正常结束
现在是单取一条去执行就失败了.
丢人啊
update b set (b.colunm1,b.column2..)=(select a.colunm,a.column.. from a where a.username=b.username)
其中column1..2是你要填充的列
begin
for()
loop
……
end loop;
end;