我需要将公司邮件迁移到用户电子邮件中。
INSERT INTO public.user_emails ( SELECT DISTINCT
ar. "userId",
c. "companyEmail"
FROM
public.companies AS c
INNER JOIN public.account_roles AS ar ON c.id = ar. "companyId"
AND ar. "employeeId" IS NULL
WHERE
ar. "userId" NOT IN (
SELECT
"userId"
FROM
public.user_emails));在我得到这个错误的时候:
ERROR AssertionError ERR_ASSERTION: ifError得到了不必要的异常:列c.companyEmail不存在
我如何在这里添加IF EXISTS或CASE逻辑来检查c.companyEmail是否存在?
发布于 2021-07-13 08:34:51
看来postgresql确实有这样的语句。
ALTER TABLE companies
ADD companyEmail IF NOT EXISTS companyEmail varchar(32);然后,您可以运行insert sql。
但同样,这是不建议的。DDL和DML应以不同的角色运行,要插入的角色不应具有更改表结构的权限。
发布于 2021-07-13 08:27:58
哪种数据库?如果是mysql,可以尝试插入..。关于重复键
https://stackoverflow.com/questions/68358805
复制相似问题