Bonjour,

J'ai une question SQL. Mon SGBD est oracle 10.

J'ai trois tables:

TABLE 1
TAB1_ID (primary key)
TAB1_CUSTOMER

TABLE 2
TAB2_ID (primary key)
FK_TAB3

TABLE 3
TAB3_ID (primary key)
KEY_TAB3
TAB3_CUSTOMER

Les jointures sont faites comme ca TAB1_ID=TAB2_ID et FK_TAB3=KEY_TAB3.
Je veux faire une update qui met les valeurs de TAB3_CUSTMONER dans TAB1_CUSTOMER avec les jointures.

J'ai pensé à ce genre de query:

update
(select tab3.TAB3_CUSTOMER,tab1.TAB1_CUSTOMER from TABLE_1 tab1,TABLE_2 tab2,TABLE_3 tab3 where tab3.KEY_TAB3=tab2.FK_TAB3 and tab1.TAB1_ID=tab2.TAB2_ID) updtab
set uptab.TAB1_CUSTOMER=uptab.TAB3_CUSTOMER;

J'ai cette erreur Oracle : ORA-01779: cannot modify a column which maps to a non key-preserved table

Quelqu'un a une idée de copmment faire cette requete SQL autrement?

Merci d'avance