Mariadb 插入不重复的值
我想将付款类型3添加到所有业务中。我怎样才能和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
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先生也尝试了一些方法,但不幸的是,由于注意力不集中,出现了一些错误,无法解决问题。非常感谢。