вставка в таблицу с условиями - PullRequest
0 голосов
/ 21 марта 2020

SQL. у меня есть две таблицы резидентов (первичный ключ избавлен) и зависимых (первичный ключ сделал). иждивенцы подключены к жителям через рид. Я хочу вставить строки в таблицу зависимостей только в том случае, если рид в операторе вставки совпадает с любым из ридов в таблице резидентов. я попробовал код ниже, но есть некоторая ошибка с предложением where.

insert into
  dependents(rid, name, did, phone)
values
  (1, 'george', 156, 8134563255)
where
  exists(
    select
      rid
    from
      residents
    where
      residents.rid = dependents.rid
  );

1 Ответ

0 голосов
/ 21 марта 2020

На мой взгляд, не имеет смысла вставлять значение, которое уже существует, поэтому я думаю, что вы, возможно, захотите на самом деле хотеть update:

update dependents
    set name = 'george',
        did = 156,
        phone = 8134563255
    where rid = 1;

Если вы хотите insert, затем используйте insert . . . select:

insert into dependents (rid, name, did, phone) 
    select 1, 'george', 156, 8134563255
    from residents r
    where r.id = 1;

Если вы хотите вставить всех жителей, то:

insert into dependents (rid, name, did, phone) 
    select r.id, 'george', 156, 8134563255
    from residents r;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...