SQL insert into select 语句

时间:2021-07-04 04:28:17

遇到权限数据变更的需要批量到别的平台, 在175平台添加一个权限需要, 批量到别的现有平台, 以后的建站, 会把sql放到自动建站里面;

权限的 insert into select

  表一: `ouser`.`u_function`   权限表

  表二: misc.gxej_company    平台表

  sql:

  

INSERT INTO `ouser`.`u_function` (
`code`,
`parent_code`,
`product_type`,
`type`,
`domain`,
`path`,
`name`,
`desc_`,
`level`,
`target`,
`icon`,
`sort_value`,
`is_available`,
`is_deleted`,
`version_no`,
`create_userid`,
`create_username`,
`create_userip`,
`create_usermac`,
`create_time_db`,
`server_ip`,
`update_userid`,
`update_username`,
`update_userip`,
`update_usermac`,
`update_time_db`,
`client_versionno`,
`company_id`,
`platform_id`
) SELECT
'',
'',
NULL,
'',
'/back-finance-web',
'/#/stmMerchantSoStatementListOld/2',
'商家销售结算单旧',
NULL,
'',
NULL,
NULL,
'',
NULL,
'',
NULL,
NULL,
NULL,
NULL,
NULL, NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
c.id,
''
FROM
misc.gxej_company c where c.id != 175; #去掉175平台

  

角色的insert into select  

  涉及到左连接:

    insert into ... select ... where ... join语法 例子

insert into T2(c1, c2, c3)
select
t1.c1,
t1.c2,
t1.c3
from T1 t1
where
t1.c2 = 'y'
left join T3 t3 on t1.c1 = t3.c1
left join T4 t4 on t1.c1 = t4.c1;

  

  权限关联表 : u_role_function

  角色表: u_role

  权限表:  u_function

  注意: on 条件生产临时表

INSERT INTO `ouser`.`u_role_function` (

    `role_id`,
`function_id`,
`is_available`,
`is_deleted`,
`version_no`,
`create_userid`,
`create_username`,
`create_userip`,
`create_usermac`,
`create_time`,
`create_time_db`,
`server_ip`,
`update_userid`,
`update_username`,
`update_userip`,
`update_usermac`,
`update_time_db`,
`client_versionno`,
`company_id`
)
SELECT
r.id,
f.id,
NULL,
'0',
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
r.company_id
FROM ouser.u_role r LEFT JOIN ouser.u_function f on r.company_id = f.company_id where r.code ='merchant_role_code_enter_type_1' and f.code LIKE '%307788%'