Det finns 2,5 sätt att göra detta (i princip två, men det känns som att det finns tre):
Från lättast till svårast...
Alternativ 1:
Om du behöver tabellA för att återspegla tabellB:s värde, lagra inte värdet i tabellA alls, använd bara tabellB:s värde. Använd antingen en join:
select a.*, b.col1
from tableA a
join tableB b on <some join condition>
eller ett underval
select *, (select col1 from tableB where <some condition>) col1
from tableA
Alternativ 2:
Om du är nöjd med alternativ 1, konvertera den till en vy som beter sig som en tabell (förutom begränsningar för uppdatering av vyer som är kopplingar):
create view myview as
select ... (one of the above selects)
Alternativ 3:
Skapa en databasutlösare som aktiveras när tabellB:s värde ändras och kopierar värdet till lämplig rad/kolumn i tabellA
create trigger tableB_update
after update on tableB
for each row
update tableA set
tablea_col = new.col1
where id = new.tableA_id;
Observera att new
och old
är speciella namn som ges till de nya och gamla raden så att du kan referera till värdena i tabellen som uppdateras.
Välj det alternativ som bäst passar dina behov.