1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| ALTER TABLE exemplaire
DROP CONSTRAINT fk_exemplaire_livre;
ALTER TABLE exemplaire
DROP CONSTRAINT exemplaire_pk;
ALTER TABLE exemplaire
RENAME TO exemplaire_old;
CREATE SEQUENCE seq_id_etat
START WITH 1
NOCYCLE;
INSERT INTO etat (id_etat, libelle_etat)
SELECT seq_id_etat.nextval, Etat
FROM (SELECT DISTINCT etat FROM exemplaire_old);
CREATE TABLE exemplaire
(
numinv number constraint exemplaire_pk PRIMARY KEY,
dateachat date,
etat_id number constraint fk_exemplaire_etat REFERENCES etat(etat_id),
livre number constraint fk_exemplaire_livre REFERENCES livre (code_livre)
);
INSERT INTO exemplaire (numinv, dateachat, etat_id, livre)
SELECT ex.numinv, ex.dateachat, et.etat_id, ex.livre
FROM exemplaire_old ex
INNER JOIN etat et
ON et.libelle_etat = ex.etat;
COMMIT;
-- Après vérification :
-- DROP TABLE exemplaire_old; |