обновлять данные о таблице начиная с другой в SQL

Мне хотелось бы знать, возможно ли, и как он делается, чтобы обновлять данные о таблице из-за других другой.

Например:

Таблица 1:

id_tabla1 | Nombre | Descripcion 

Таблица 2:

id_tabla2 | Nombre | Descripcion

Различие между таблицей 1 и 2, состоят в том, что у 1 есть первые 2 реестра, которые не могут покрывать, а именно, они должны оставаться установленными всегда, да или да.

Таблица 2 становится отвечающим современным требованиям в каждый день (Они присоединяются и изменяют данные) то, в чем я нуждаюсь, состоит в том, чтобы вводить все данные о таблице 2 в 1. Уже состойте вводя новых и обновляя старики, или удаляя все данные о таблице 1 меньше первые 2 реестра и потом в том, чтобы вводить реестры таблицы 2.

Возможно делать?

Таблица 1 находится в MYSQL и 2 в SQL Server. Я считаю их связанными, а именно, с sql server я делаю консультации подмостков mysql. Пример был бы:

id_tabla1 | Nombre | Descripcion  
1                  a               a1  
2                  b               b1  
3                  c               c1  

Таблица 2:

id_tabla2 | Nombre | Descripcion
1                  a               a1
2                  b               b1
3                  c               c2
4                  d               d1

Тогда то, в чем я нуждаюсь, состоит в том, чтобы вводить в таблице 1 линия id 4 из таблицы 2 и обновлять линию id 3.

0
задан 03.11.2016, 19:38
3 ответа

Со мной случается, что podrГ-эксперт aГ±adir признак в эти реестры, который был бы обязательный, и который помогал тебе для консультаций подобно boolean, так что, если этой стоимости 0, реестр не может исчезать, и если его 1 sГ-.

Из этой формы harГ-схвати один delete из всех реестров, где campo = 1, и потом ты вводишь стоимость, которую ты хочешь и aГ±ades стоимость 0 / 1 завися, если в будущем ты захочешь удалить это.

0
ответ дан 24.11.2019, 12:46

Эта soluciГіn для двух подмостков MySql . Чтобы начинаться, ты darГ© подмостки с данными о доказательстве, для того, чтобы поняли.

, Поскольку ты прокомментировал, первые два реестра не могут исчезать. Исходя из этого, я не осложняю жизнь и удалил все реестры таблицы 1 кроме этих двух, с этим query.

DELETE FROM Tabla_1 WHERE IdT1 <> 0 OR IdT1 <> 1;

Итак, у тебя есть твоя таблица чистый 1, только тебе остается копировать все реестры Таблицы 2 в Таблице 1, давайте представлять Таблицу 2, такой, что:

introducir la descripción de la imagen aquí

, Чтобы копировать все реестры, ты используешь этот query:

INSERT INTO Tabla_1 SELECT * FROM Tabla_2;

Контролировать ошибки, это уже, как ты aplicaciГіn я функционировал.

Лучший контроль, чтобы предотвращать ошибку PK в таблице 1, когда 2 вводить данные о Таблице. Ты используешь этот query.

INSERT INTO Tabla_1 SELECT * FROM Tabla_2 WHERE IdT2 <> 0 OR IdT2 <> 1;

ты убеждаешься, что, если существует algГєn реестр с Id со стоимостью 0 или 1 в таблице 2, он не вмешался, так как их тебе хватает, так как ты сказал, что первые два реестра Таблицы не касаются 1, и asГ - ты предотвращаешь ошибку PK с Таблицей 1.

2
ответ дан 24.11.2019, 12:46
  • 1
    Большое спасибо из-за ответа. Сейчас я делаю тебе другой консультацией, идентификациями таблицы 2, они уважаются, когда я делаю insert в таблице 1?? – Pepemujica 03.11.2016, 13:46
  • 2
    Они Пойдите Таблицы 2 уважают, кроме, если у них есть стоимость IdT2=0 или IdT2=1, так как встречаться, и # 237; в ошибку связности PK в Таблице 1. – ferpaxecosanxez 04.11.2016, 12:00
  • 3
    Я только что издал и в и # 241; adir informaci и # 243; n в конце моего ответа. Ты помогать и # 225;. – ferpaxecosanxez 04.11.2016, 12:07
  • 4
    Большое спасибо! – Pepemujica 04.11.2016, 16:16
  • 5
    @FIPS и #191; C и # 243; mo ты произвел эти подмостки? (Я имею в виду рисунок) – Peregring-lk 04.11.2016, 17:04

Я это resolverГ - в с двумя консультациями. Сначала update обновляя все те, кто пересекали бы, и потом другой query с insert тех, которых у тебя нет в первой. Пробовать решать это в единственной консультации будет осложнять тебе жизнь в излишке. Я построил тебе sql со структурой, которую ты показываешь (в полет). Я надеюсь, что они подают тебя как ссылка:

update tabla1 
set nombre = tabla2.nombre, 
descripcion = tabla2.descripcion 
from tabla1 
inner join tabla2 on tabla1.id = tabla2.id; 

insert into tabla1(id,nombre,descripcion) 
select tabla2.id,tabla2.nombre,tabla2.descripcion 
from tabla2 
left join tabla1 on tabla1.id=tabla2.id 
where tabla1.id is null;
-1
ответ дан 24.11.2019, 12:46
  • 1
    Я построил тебе sql со структурой, которую ты показываешь (в полет). Я надеюсь, что они подают тебя как ссылка: – Fernando Forcén 04.11.2016, 09:03
  • 2
    update tabla1 set имя = tabla2.nombre, описание = tabla2.descripcion from tabla1 inner join tabla2 on tabla1.id = tabla2.id; insert into tabla1 (пойдите, имя, описание) select пойдите, назовите, описание from tabla2 left join tabla1 on tabla1.id=tabla2.id where tabla1.id is null; – Fernando Forcén 04.11.2016, 09:04