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.
Registrandoti e creando un nuovo account potrai usufruire di tutti i servizi messi a disposizione, fare domande, rispondere agli utenti, accumulare punti e diventare un utente riconosciuto come esperto; ricevere la nostra newsletter e molto altro ancora. Il tutto in modo semplice, veloce e soprattutto gratuito. Una volta effettuata la registrazione veloce, potrai completare l'inserimento dei tuoi dati accedendo al tuo profilo.
Crea un AccountHai perso la tua Password? Inserisci l'e-mail (username) con la quale ti sei registrato, e ti invieremo una email con una nuova password che potrai poi cambiare una volta entrato nel tuo profilo.
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.
Per poter rispondere a questa domanda, devi essere registrato e loggato sul sito, dopodichè compila il box sottostante cercando di essere il più chiaro ed esauriente possibile, la tua risposta potrebbe essere la soluzione che l'utente cerca ed essere contrassegnata come migliore, consentendoti così di ottenere punti ed autorevolezza.
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