首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL如何在插入前检查列是否存在

问SQL如何在插入前检查列是否存在
EN

Stack Overflow用户
提问于 2021-07-13 08:14:20
回答 2查看 139关注 0票数 0

我需要将公司邮件迁移到用户电子邮件中。

代码语言:javascript
复制
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是否存在?

EN

回答 2

Stack Overflow用户

发布于 2021-07-13 08:34:51

看来postgresql确实有这样的语句。

代码语言:javascript
复制
ALTER TABLE companies 
  ADD companyEmail IF NOT EXISTS companyEmail varchar(32);

然后,您可以运行insert sql。

但同样,这是不建议的。DDL和DML应以不同的角色运行,要插入的角色不应具有更改表结构的权限。

票数 0
EN

Stack Overflow用户

发布于 2021-07-13 08:27:58

哪种数据库?如果是mysql,可以尝试插入..。关于重复键

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68358805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档