Вставьте значения без дубликатов - PullRequest
1 голос
/ 16 апреля 2020

Я хочу добавить тип оплаты 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_business' didn ' значение по умолчанию

Таблица похожа на картинку

my table image

Ответы [ 2 ]

1 голос
/ 16 апреля 2020

Я хочу добавить вид оплаты 3 для всех предприятий.

Все предприятия, вероятно, находятся в таблице предприятий. Отсюда:

insert into business_payment_type (id_business, id_payment_type, active) 
  select id_business, 3, 1 from business;
1 голос
/ 16 апреля 2020

Соберите все ваши id_business значения и новые значения вместе в одном операторе, а затем INSERT этот набор записей в вашей таблице.

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;
...