Condividi
Creare una tabella solo se non esiste
In Postgres come posso scrivere una condizione che mi crei una tabella sul database solo se questa non è già esistente? Se potete scrivere l'istruzione sql di come si fà mi sareste di grande aiuto.
Risolta
4
PostgreSQL
20-06-2018
4 Risposte
1601 Visite
0
Risposte ( 4 approvate )
Devi utilizzare la condizione
IF NOT EXISTS
in questo modoche ti creerà la tabella 'myTable' nello schema 'mySchema' solo se la tabella non esiste.
Puoi verificare il valore ritornato da una select sull'esistenza o meno della tabella per poi valutare se lanciare l'istruzione sql
CREATE TABLE
o meno, in questo modoSe la SELECT corrisponde, ossia trova la tabella verrà ritornato il valore true (vero) diversamente otterrai un dataset vuoto e puoi eseguire la
CREATE TABLE
La migliore risposta (soluzione) è quella che ti ha dato 'Caterina Stoletti', solo che fai attenzione che la
CREATE TABLE IF NOT EXISTS
funziona solo dalla versione di PostgreSQL 9.1 in poi, e puoi eseguirla anche in maniera indipendente dallo schema.Lancia la tua
CREATE TABLE
senza crearti grossi problemi, se questa non è presente nel database allora la tabella verrà creata, diversamente la tabella esistente non sarà modificata, inoltre puoi sempre verificare il valore ritornato dalla tua query SQL per vedere se la tabella esiste o meno quando esegui laCREATE TABLE