Mariadb 插入不重复的值

Mariadb 插入不重复的值,mariadb,rdbms,Mariadb,Rdbms,我想将付款类型3添加到所有业务中。我怎样才能和MariaDB一起做呢 我喜欢这样: insert into business_payment_type (id_payment_type, active) select "4", "1" from business_payment_type where id_business in (select distinct(id_business) fro

我想将付款类型3添加到所有业务中。我怎样才能和MariaDB一起做呢

我喜欢这样:

insert into business_payment_type 
        (id_payment_type, active) 
    select "4", "1" 
    from business_payment_type 
    where id_business in (select distinct(id_business) 
                          from business_payment_type)
但它返回错误:

1364-字段“id\u business”没有默认值

图像上的类表格


将所有
id\u业务
值和新值放在一条语句中,然后
将该记录集插入表中

INSERT INTO business_payment_type (
   id_business
  ,id_payment_type
  ,active
  )
SELECT DISTINCT
  id_business
  ,4 AS id_payment_type
  ,1 AS active
FROM business_payment_type;
我想将付款类型3添加到所有业务中

所有业务可能都在业务表中。因此:

insert into business_payment_type (id_business, id_payment_type, active) 
  select id_business, 3, 1 from business;

从这张图上看,这看起来像PHPMyAdmin,这表明您使用的是MySQL,而不是SQl Server。请只标记您真正使用的RDBMS。另请注意:为什么
“1”
是否处于活动状态
是文本列?我更希望它是一个数字列,所以我会使用不带引号的
4
。当真正处理字符串文字时,应该使用标准的单引号,例如
“字符串”
,而不是双引号(在SQL标准中是名称分隔符)。谢谢@ThorstenKettner。是的,我理解我的错误。不幸的是,您没有注意到您是否正在寻找
更新
声明?或
altertable。。使用唯一键(可能是复合键)添加列
?或插入忽略
?谢谢。它起作用了。但我尝试了几乎相同的方法,也出现了错误。我喜欢这样做:在business\u payment\u type(“id\u business”、“id\u business\u type”、“active”)中插入distinct(id\u business),“4”、“1”from business\u payment\u typeMySQL语法允许您像那样使用
distinct
,但它不会返回您期望的结果,正如您所看到的
DISTINCT
不是一个函数,实际上,它不能以这种方式应用于列。我很高兴这能奏效。请考虑将此标记为您所接受的答案,点击左边的灰色复选标记。如果你这样做,我们每个人都会获得一些声誉积分,其他人会看到你找到了解决方案。Thakn你解释一下,EricI先生也尝试了一些方法,但不幸的是,由于注意力不集中,出现了一些错误,无法解决问题。非常感谢。