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
1886 Visite
0

Risposte ( 4 approvate )
Devi utilizzare la condizione
IF NOT EXISTSin 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 TABLEo 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 TABLELa migliore risposta (soluzione) è quella che ti ha dato 'Caterina Stoletti', solo che fai attenzione che la
CREATE TABLE IF NOT EXISTSfunziona solo dalla versione di PostgreSQL 9.1 in poi, e puoi eseguirla anche in maniera indipendente dallo schema.Lancia la tua
CREATE TABLEsenza 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