INSERT, esempi
-
insert into profili_utenti
select distinct(id_utente), 1
from utenti
Esempio classico. I valori da inserire nella tabella provengono da un select.
L'importante e' che coincidano il tipo ed il numero degli attributi fra la tabella dove inserire e quella generata dal select.
In questo caso la tabella ha come definizione profili_utenti(id_profilo number not null, id_utente number not null). La chiave
primaria e' data dalla tupla intera (id_profilo, id_utente), vedi esempi "CREATE". Per questo motivo uso il distinct
sull'id_utente della tabella utenti. L'unica cosa da sapere sulla tabella utenti e' che l'id_utente fa parte della chiave
primaria e non puo' avere valori nulli. Se cosi' non fosse, potrebbero esserci dei problemi durante l'inserimento. Un'ultima cosa.
-
Non va!!!
insert into amministratori_forum_archivio
select id_amministratore, id_forum, data_inizio
from amministratori_forum
where id_amministratore=12792 and id_forum=31
Ok!
insert into amministr_forum_archivio
select id_amministratore, id_forum, to_date(to_char(data_inizio))
from amministratori_forum
where id_amministratore=12792 and id_forum=31
Ok!
insert into amministratori_forum_archivio
select id_amministratore, id_forum, trunc(data_inizio)
from amministratori_forum
where id_amministratore=12792 and id_forum=31
Ok!
insert into amministratori_forum_archivio
select id_amministratore, id_argomento, sysdate
from amministratori_forum
where id_amministratore=12792 and id_forum=31
Quest'esempio e' un po' particolare. Il primo insert non funziona, o meglio,
non provoca errore ma si blocca in attesa per un tempo indefinito. Le piccole trasformazioni dei 3 insert successivi,
consentono al tutto di funzionare. Ok, e' vero, alcuni non fanno la stessa cosa del primo, ma e' interessante vedere
quali tipi di insert funzionino e quali no. Il tutto si e' verificato su Ora8.
|