如何在MySQL中循环插入?

时间:2015-09-01 06:39:18

标签: mysql sql

我想批量插入SQL下面的roles表格来初始化用户的角色信息,我向每个roles授予三个user

INSERT INTO `roles` 
(`role_id`, `role_name`, `menu_id`, `role_updated_time`, `role_created_time`, `role_creator_user_id`, `role_sys_type`) 
VALUES  
(40, 'developer', '[1,2,3,4]', NULL, now(), 1027, 1),   
(41, 'financial', '[1,2,3]', NULL, now(), 1027, 2),     
(42, 'operation', '[1,2]', NULL, now(), 1027, 3);

我想在一个SQL中完成这项工作,所以如何在foreach表中usr_idusersroles,以便它插入usr_id表{{1} }}相当于role_creator_user_id表中的rolesrole_idauto_increment

我使用这个SQL但不起作用:

INSERT INTO `roles` 
    (`role_id`, `role_name`, `menu_id`, `role_updated_time`, `role_created_time`, `role_creator_user_id`, `role_sys_type`) 
    VALUES  
    (40, 'developer', '[1,2,3,4]', NULL, now(), (select usr_id from users), 1),     
    (41, 'financial', '[1,2,3]', NULL, now(), (select usr_id from users), 2),   
    (42, 'operation', '[1,2]', NULL, now(), (select usr_id from users), 3);

所以我试过这个,也行不通:

  

INSERT INTO roles           (role_idrole_namemenu_idrole_updated_timerole_created_timerole_creator_user_idrole_sys_type)           VALUES           (从用户中选择100,'开发人员' [1,2,3,4]',NULL,now(),usr_id,1)

0 个答案:

没有答案