复杂/简单SQL插入:添加多行

UmY*_*eah 1 mysql sql

我有一张表将校长连接到他们的角色.我遇到了需要为每个用户添加角色的情况.我有一份声明SELECT id FROM principals,其中列出了所有校长的名单.我想要创建的内容如下:

INSERT INTO role_principal(principal_id,role_id)
VALUES(SELECT id FROM principals, '1');

因此,对于每个主体,它会创建一个role_id = 1的新记录.我的SQL经验非常少,所以我不知道我是否可以像我想的那样简单地执行此操作,或者在SQL中是否存在某种我可以使用的循环功能.

此外,这是一个mySQL数据库(如果这很重要)

Pet*_*ang 10

VALUES如果要直接插入值,请使用关键字.省略它使用任何SELECT(列数和类型匹配)来获取值.

INSERT INTO role_principal(principal_id,role_id)
    (SELECT id, 1 FROM principals);
Run Code Online (Sandbox Code Playgroud)